<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /><title>GHC</title><link href="linuwial.css" rel="stylesheet" type="text/css" title="Linuwial" /><link rel="stylesheet" type="text/css" href="quick-jump.css" /><link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=PT+Sans:400,400i,700" /><script src="haddock-bundle.min.js" async="async" type="text/javascript"></script><script type="text/x-mathjax-config">MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });</script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script></head><body><div id="package-header"><span class="caption">ghc-9.0.2: The GHC API</span><ul class="links" id="page-menu"><li><a href="src/GHC.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>Safe-Inferred</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">GHC</p></div><div id="table-of-contents"><div id="contents-list"><p class="caption" onclick="window.scrollTo(0,0)">Contents</p><ul><li><a href="#g:1">Initialisation</a></li><li><a href="#g:2">GHC Monad</a></li><li><a href="#g:3">Flags and settings</a></li><li><a href="#g:4">Targets</a></li><li><a href="#g:5">Loading/compiling the program</a><ul><li><a href="#g:6">Compiling to Core</a></li></ul></li><li><a href="#g:7">Inspecting the module structure of the program</a></li><li><a href="#g:8">Inspecting modules</a></li><li><a href="#g:9">Querying the environment</a></li><li><a href="#g:10">Printing</a></li><li><a href="#g:11">Interactive evaluation</a><ul><li><a href="#g:12">Executing statements</a></li><li><a href="#g:13">Adding new declarations</a></li><li><a href="#g:14">Get/set the current context</a></li><li><a href="#g:15">Inspecting the current context</a></li><li><a href="#g:16">Inspecting types and kinds</a></li><li><a href="#g:17">Looking up a Name</a></li><li><a href="#g:18">Compiling expressions</a></li><li><a href="#g:19">Docs</a></li><li><a href="#g:20">Other</a></li><li><a href="#g:21">The debugger</a></li></ul></li><li><a href="#g:22">Abstract syntax elements</a><ul><li><a href="#g:23">Units</a></li><li><a href="#g:24">Modules</a></li><li><a href="#g:25">Names</a></li><li><a href="#g:26">Identifiers</a></li><li><a href="#g:27">Type constructors</a></li><li><a href="#g:28">Type variables</a></li><li><a href="#g:29">Data constructors</a></li><li><a href="#g:30">Classes</a></li><li><a href="#g:31">Instances</a></li><li><a href="#g:32">Types and Kinds</a></li><li><a href="#g:33">Entities</a></li><li><a href="#g:34">Syntax</a></li><li><a href="#g:35">Fixities</a></li><li><a href="#g:36">Source locations</a></li><li><a href="#g:37">Located</a><ul><li><a href="#g:38">Constructing Located</a></li><li><a href="#g:39">Deconstructing Located</a></li><li><a href="#g:40">Combining and comparing Located values</a></li></ul></li></ul></li><li><a href="#g:41">Exceptions</a></li><li><a href="#g:42">Token stream manipulations</a></li><li><a href="#g:43">Pure interface to the parser</a></li><li><a href="#g:44">API Annotations</a></li><li><a href="#g:45">Miscellaneous</a></li></ul></div></div><div id="synopsis"><details id="syn"><summary>Synopsis</summary><ul class="details-toggle" data-details-id="syn"><li class="src short"><a href="#v:defaultErrorHandler">defaultErrorHandler</a> :: <a href="GHC-Utils-Exception.html#t:ExceptionMonad" title="GHC.Utils.Exception">ExceptionMonad</a> m =&gt; <a href="GHC-Driver-Session.html#t:FatalMessager" title="GHC.Driver.Session">FatalMessager</a> -&gt; <a href="GHC-Driver-Session.html#t:FlushOut" title="GHC.Driver.Session">FlushOut</a> -&gt; m a -&gt; m a</li><li class="src short"><a href="#v:defaultCleanupHandler">defaultCleanupHandler</a> :: <a href="GHC-Utils-Exception.html#t:ExceptionMonad" title="GHC.Utils.Exception">ExceptionMonad</a> m =&gt; <a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a> -&gt; m a -&gt; m a</li><li class="src short"><a href="#v:prettyPrintGhcErrors">prettyPrintGhcErrors</a> :: <a href="GHC-Utils-Exception.html#t:ExceptionMonad" title="GHC.Utils.Exception">ExceptionMonad</a> m =&gt; <a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a> -&gt; m a -&gt; m a</li><li class="src short"><a href="#v:withSignalHandlers">withSignalHandlers</a> :: <a href="GHC-Utils-Exception.html#t:ExceptionMonad" title="GHC.Utils.Exception">ExceptionMonad</a> m =&gt; m a -&gt; m a</li><li class="src short"><a href="#v:withCleanupSession">withCleanupSession</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m a -&gt; m a</li><li class="src short"><span class="keyword">data</span> <a href="#t:Ghc">Ghc</a> a</li><li class="src short"><span class="keyword">data</span> <a href="#t:GhcT">GhcT</a> m a</li><li class="src short"><span class="keyword">class</span> (<a href="GHC-Prelude.html#t:Functor" title="GHC.Prelude">Functor</a> m, <a href="GHC-Utils-Exception.html#t:ExceptionMonad" title="GHC.Utils.Exception">ExceptionMonad</a> m, <a href="GHC-Driver-Session.html#t:HasDynFlags" title="GHC.Driver.Session">HasDynFlags</a> m) =&gt; <a href="#t:GhcMonad">GhcMonad</a> m <span class="keyword">where</span><ul class="subs"><li><a href="#v:getSession">getSession</a> :: m <a href="GHC.html#t:HscEnv" title="GHC">HscEnv</a></li><li><a href="#v:setSession">setSession</a> :: <a href="GHC.html#t:HscEnv" title="GHC">HscEnv</a> -&gt; m ()</li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:HscEnv">HscEnv</a></li><li class="src short"><a href="#v:runGhc">runGhc</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a> -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> a -&gt; <a href="GHC-Prelude.html#t:IO" title="GHC.Prelude">IO</a> a</li><li class="src short"><a href="#v:runGhcT">runGhcT</a> :: <a href="GHC-Utils-Exception.html#t:ExceptionMonad" title="GHC.Utils.Exception">ExceptionMonad</a> m =&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a> -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m a -&gt; m a</li><li class="src short"><a href="#v:initGhcMonad">initGhcMonad</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a> -&gt; m ()</li><li class="src short"><a href="#v:printException">printException</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Driver-Types.html#t:SourceError" title="GHC.Driver.Types">SourceError</a> -&gt; m ()</li><li class="src short"><a href="#v:handleSourceError">handleSourceError</a> :: <a href="../exceptions/Control-Monad-Catch.html#t:MonadCatch" title="Control.Monad.Catch">MonadCatch</a> m =&gt; (<a href="GHC-Driver-Types.html#t:SourceError" title="GHC.Driver.Types">SourceError</a> -&gt; m a) -&gt; m a -&gt; m a</li><li class="src short"><a href="#v:needsTemplateHaskellOrQQ">needsTemplateHaskellOrQQ</a> :: <a href="GHC.html#t:ModuleGraph" title="GHC">ModuleGraph</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:DynFlags">DynFlags</a> = <a href="#v:DynFlags">DynFlags</a> {<ul class="subs"><li><a href="#v:ghcMode">ghcMode</a> :: <a href="GHC.html#t:GhcMode" title="GHC">GhcMode</a></li><li><a href="#v:ghcLink">ghcLink</a> :: <a href="GHC.html#t:GhcLink" title="GHC">GhcLink</a></li><li><a href="#v:hscTarget">hscTarget</a> :: <a href="GHC.html#t:HscTarget" title="GHC">HscTarget</a></li><li><a href="#v:ghcNameVersion">ghcNameVersion</a> :: !<a href="GHC-Settings.html#t:GhcNameVersion" title="GHC.Settings">GhcNameVersion</a></li><li><a href="#v:fileSettings">fileSettings</a> :: !<a href="GHC-Settings.html#t:FileSettings" title="GHC.Settings">FileSettings</a></li><li><a href="#v:targetPlatform">targetPlatform</a> :: <a href="GHC-Settings.html#t:Platform" title="GHC.Settings">Platform</a></li><li><a href="#v:toolSettings">toolSettings</a> :: !<a href="GHC-Settings.html#t:ToolSettings" title="GHC.Settings">ToolSettings</a></li><li><a href="#v:platformMisc">platformMisc</a> :: !<a href="GHC-Settings.html#t:PlatformMisc" title="GHC.Settings">PlatformMisc</a></li><li><a href="#v:platformConstants">platformConstants</a> :: <a href="GHC-Settings.html#t:PlatformConstants" title="GHC.Settings">PlatformConstants</a></li><li><a href="#v:rawSettings">rawSettings</a> :: [(<a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>, <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>)]</li><li><a href="#v:llvmConfig">llvmConfig</a> :: <a href="GHC-Driver-Session.html#t:LlvmConfig" title="GHC.Driver.Session">LlvmConfig</a></li><li><a href="#v:verbosity">verbosity</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:optLevel">optLevel</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:debugLevel">debugLevel</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:simplPhases">simplPhases</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:maxSimplIterations">maxSimplIterations</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:ruleCheck">ruleCheck</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li><a href="#v:inlineCheck">inlineCheck</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li><a href="#v:strictnessBefore">strictnessBefore</a> :: [<a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a>]</li><li><a href="#v:parMakeCount">parMakeCount</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:enableTimeStats">enableTimeStats</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li><a href="#v:ghcHeapSize">ghcHeapSize</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:maxRelevantBinds">maxRelevantBinds</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:maxValidHoleFits">maxValidHoleFits</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:maxRefHoleFits">maxRefHoleFits</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:refLevelHoleFits">refLevelHoleFits</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:maxUncoveredPatterns">maxUncoveredPatterns</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:maxPmCheckModels">maxPmCheckModels</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:simplTickFactor">simplTickFactor</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:specConstrThreshold">specConstrThreshold</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:specConstrCount">specConstrCount</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:specConstrRecursive">specConstrRecursive</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:binBlobThreshold">binBlobThreshold</a> :: <a href="GHC-Prelude.html#t:Word" title="GHC.Prelude">Word</a></li><li><a href="#v:liberateCaseThreshold">liberateCaseThreshold</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:floatLamArgs">floatLamArgs</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:liftLamsRecArgs">liftLamsRecArgs</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:liftLamsNonRecArgs">liftLamsNonRecArgs</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:liftLamsKnown">liftLamsKnown</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li><a href="#v:cmmProcAlignment">cmmProcAlignment</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:historySize">historySize</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:importPaths">importPaths</a> :: [<a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a>]</li><li><a href="#v:mainModIs">mainModIs</a> :: <a href="GHC.html#t:Module" title="GHC">Module</a></li><li><a href="#v:mainFunIs">mainFunIs</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li><a href="#v:reductionDepth">reductionDepth</a> :: <a href="GHC-Types-Basic.html#t:IntWithInf" title="GHC.Types.Basic">IntWithInf</a></li><li><a href="#v:solverIterations">solverIterations</a> :: <a href="GHC-Types-Basic.html#t:IntWithInf" title="GHC.Types.Basic">IntWithInf</a></li><li><a href="#v:homeUnitId">homeUnitId</a> :: <a href="GHC-Unit-Types.html#t:UnitId" title="GHC.Unit.Types">UnitId</a></li><li><a href="#v:homeUnitInstanceOfId">homeUnitInstanceOfId</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Unit-Types.html#t:IndefUnitId" title="GHC.Unit.Types">IndefUnitId</a></li><li><a href="#v:homeUnitInstantiations">homeUnitInstantiations</a> :: [(<a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a>, <a href="GHC.html#t:Module" title="GHC">Module</a>)]</li><li><a href="#v:ways">ways</a> :: <a href="../containers/Data-Set.html#t:Set" title="Data.Set">Set</a> <a href="GHC-Driver-Ways.html#t:Way" title="GHC.Driver.Ways">Way</a></li><li><a href="#v:splitInfo">splitInfo</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (<a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>, <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a>)</li><li><a href="#v:objectDir">objectDir</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li><a href="#v:dylibInstallName">dylibInstallName</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li><a href="#v:hiDir">hiDir</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li><a href="#v:hieDir">hieDir</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li><a href="#v:stubDir">stubDir</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li><a href="#v:dumpDir">dumpDir</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li><a href="#v:objectSuf">objectSuf</a> :: <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li><a href="#v:hcSuf">hcSuf</a> :: <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li><a href="#v:hiSuf">hiSuf</a> :: <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li><a href="#v:hieSuf">hieSuf</a> :: <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li><a href="#v:canGenerateDynamicToo">canGenerateDynamicToo</a> :: <a href="GHC-Data-IOEnv.html#t:IORef" title="GHC.Data.IOEnv">IORef</a> <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li><a href="#v:dynObjectSuf">dynObjectSuf</a> :: <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li><a href="#v:dynHiSuf">dynHiSuf</a> :: <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li><a href="#v:outputFile">outputFile</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li><a href="#v:dynOutputFile">dynOutputFile</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li><a href="#v:outputHi">outputHi</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li><a href="#v:dynLibLoader">dynLibLoader</a> :: <a href="GHC-Driver-Session.html#t:DynLibLoader" title="GHC.Driver.Session">DynLibLoader</a></li><li><a href="#v:dumpPrefix">dumpPrefix</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a></li><li><a href="#v:dumpPrefixForce">dumpPrefixForce</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a></li><li><a href="#v:ldInputs">ldInputs</a> :: [<a href="GHC-Utils-CliOption.html#t:Option" title="GHC.Utils.CliOption">Option</a>]</li><li><a href="#v:includePaths">includePaths</a> :: <a href="GHC-Driver-Session.html#t:IncludeSpecs" title="GHC.Driver.Session">IncludeSpecs</a></li><li><a href="#v:libraryPaths">libraryPaths</a> :: [<a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>]</li><li><a href="#v:frameworkPaths">frameworkPaths</a> :: [<a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>]</li><li><a href="#v:cmdlineFrameworks">cmdlineFrameworks</a> :: [<a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>]</li><li><a href="#v:rtsOpts">rtsOpts</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li><a href="#v:rtsOptsEnabled">rtsOptsEnabled</a> :: <a href="GHC-Driver-Session.html#t:RtsOptsEnabled" title="GHC.Driver.Session">RtsOptsEnabled</a></li><li><a href="#v:rtsOptsSuggestions">rtsOptsSuggestions</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li><a href="#v:hpcDir">hpcDir</a> :: <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li><a href="#v:pluginModNames">pluginModNames</a> :: [<a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a>]</li><li><a href="#v:pluginModNameOpts">pluginModNameOpts</a> :: [(<a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a>, <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>)]</li><li><a href="#v:frontendPluginOpts">frontendPluginOpts</a> :: [<a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>]</li><li><a href="#v:cachedPlugins">cachedPlugins</a> :: [<a href="GHC-Driver-Plugins.html#t:LoadedPlugin" title="GHC.Driver.Plugins">LoadedPlugin</a>]</li><li><a href="#v:staticPlugins">staticPlugins</a> :: [<a href="GHC-Driver-Plugins.html#t:StaticPlugin" title="GHC.Driver.Plugins">StaticPlugin</a>]</li><li><a href="#v:hooks">hooks</a> :: <a href="GHC-Driver-Hooks.html#t:Hooks" title="GHC.Driver.Hooks">Hooks</a></li><li><a href="#v:depMakefile">depMakefile</a> :: <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a></li><li><a href="#v:depIncludePkgDeps">depIncludePkgDeps</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li><a href="#v:depIncludeCppDeps">depIncludeCppDeps</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li><a href="#v:depExcludeMods">depExcludeMods</a> :: [<a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a>]</li><li><a href="#v:depSuffixes">depSuffixes</a> :: [<a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>]</li><li><a href="#v:packageDBFlags">packageDBFlags</a> :: [<a href="GHC-Driver-Session.html#t:PackageDBFlag" title="GHC.Driver.Session">PackageDBFlag</a>]</li><li><a href="#v:ignorePackageFlags">ignorePackageFlags</a> :: [<a href="GHC-Driver-Session.html#t:IgnorePackageFlag" title="GHC.Driver.Session">IgnorePackageFlag</a>]</li><li><a href="#v:packageFlags">packageFlags</a> :: [<a href="GHC-Driver-Session.html#t:PackageFlag" title="GHC.Driver.Session">PackageFlag</a>]</li><li><a href="#v:pluginPackageFlags">pluginPackageFlags</a> :: [<a href="GHC-Driver-Session.html#t:PackageFlag" title="GHC.Driver.Session">PackageFlag</a>]</li><li><a href="#v:trustFlags">trustFlags</a> :: [<a href="GHC-Driver-Session.html#t:TrustFlag" title="GHC.Driver.Session">TrustFlag</a>]</li><li><a href="#v:packageEnv">packageEnv</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a></li><li><a href="#v:unitDatabases">unitDatabases</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> [<a href="GHC-Unit-State.html#t:UnitDatabase" title="GHC.Unit.State">UnitDatabase</a> <a href="GHC-Unit-Types.html#t:UnitId" title="GHC.Unit.Types">UnitId</a>]</li><li><a href="#v:unitState">unitState</a> :: <a href="GHC-Unit-State.html#t:UnitState" title="GHC.Unit.State">UnitState</a></li><li><a href="#v:filesToClean">filesToClean</a> :: <a href="GHC-Data-IOEnv.html#t:IORef" title="GHC.Data.IOEnv">IORef</a> <a href="GHC-Driver-Session.html#t:FilesToClean" title="GHC.Driver.Session">FilesToClean</a></li><li><a href="#v:dirsToClean">dirsToClean</a> :: <a href="GHC-Data-IOEnv.html#t:IORef" title="GHC.Data.IOEnv">IORef</a> (<a href="../containers/Data-Map-Strict.html#t:Map" title="Data.Map.Strict">Map</a> <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a> <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a>)</li><li><a href="#v:nextTempSuffix">nextTempSuffix</a> :: <a href="GHC-Data-IOEnv.html#t:IORef" title="GHC.Data.IOEnv">IORef</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:generatedDumps">generatedDumps</a> :: <a href="GHC-Data-IOEnv.html#t:IORef" title="GHC.Data.IOEnv">IORef</a> (<a href="../containers/Data-Set.html#t:Set" title="Data.Set">Set</a> <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a>)</li><li><a href="#v:dumpFlags">dumpFlags</a> :: <a href="GHC-Data-EnumSet.html#t:EnumSet" title="GHC.Data.EnumSet">EnumSet</a> <a href="GHC-Driver-Session.html#t:DumpFlag" title="GHC.Driver.Session">DumpFlag</a></li><li><a href="#v:generalFlags">generalFlags</a> :: <a href="GHC-Data-EnumSet.html#t:EnumSet" title="GHC.Data.EnumSet">EnumSet</a> <a href="GHC.html#t:GeneralFlag" title="GHC">GeneralFlag</a></li><li><a href="#v:warningFlags">warningFlags</a> :: <a href="GHC-Data-EnumSet.html#t:EnumSet" title="GHC.Data.EnumSet">EnumSet</a> <a href="GHC-Driver-Session.html#t:WarningFlag" title="GHC.Driver.Session">WarningFlag</a></li><li><a href="#v:fatalWarningFlags">fatalWarningFlags</a> :: <a href="GHC-Data-EnumSet.html#t:EnumSet" title="GHC.Data.EnumSet">EnumSet</a> <a href="GHC-Driver-Session.html#t:WarningFlag" title="GHC.Driver.Session">WarningFlag</a></li><li><a href="#v:language">language</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Driver-Session.html#t:Language" title="GHC.Driver.Session">Language</a></li><li><a href="#v:safeHaskell">safeHaskell</a> :: <a href="GHC.html#t:SafeHaskellMode" title="GHC">SafeHaskellMode</a></li><li><a href="#v:safeInfer">safeInfer</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li><a href="#v:safeInferred">safeInferred</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li><a href="#v:thOnLoc">thOnLoc</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></li><li><a href="#v:newDerivOnLoc">newDerivOnLoc</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></li><li><a href="#v:deriveViaOnLoc">deriveViaOnLoc</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></li><li><a href="#v:overlapInstLoc">overlapInstLoc</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></li><li><a href="#v:incoherentOnLoc">incoherentOnLoc</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></li><li><a href="#v:pkgTrustOnLoc">pkgTrustOnLoc</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></li><li><a href="#v:warnSafeOnLoc">warnSafeOnLoc</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></li><li><a href="#v:warnUnsafeOnLoc">warnUnsafeOnLoc</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></li><li><a href="#v:trustworthyOnLoc">trustworthyOnLoc</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></li><li><a href="#v:extensions">extensions</a> :: [OnOff <a href="../ghc-boot-th/GHC-LanguageExtensions-Type.html#t:Extension" title="GHC.LanguageExtensions.Type">Extension</a>]</li><li><a href="#v:extensionFlags">extensionFlags</a> :: <a href="GHC-Data-EnumSet.html#t:EnumSet" title="GHC.Data.EnumSet">EnumSet</a> <a href="../ghc-boot-th/GHC-LanguageExtensions-Type.html#t:Extension" title="GHC.LanguageExtensions.Type">Extension</a></li><li><a href="#v:ufCreationThreshold">ufCreationThreshold</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:ufUseThreshold">ufUseThreshold</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:ufFunAppDiscount">ufFunAppDiscount</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:ufDictDiscount">ufDictDiscount</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:ufDearOp">ufDearOp</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:ufVeryAggressive">ufVeryAggressive</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li><a href="#v:maxWorkerArgs">maxWorkerArgs</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:ghciHistSize">ghciHistSize</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:log_action">log_action</a> :: <a href="GHC-Driver-Session.html#t:LogAction" title="GHC.Driver.Session">LogAction</a></li><li><a href="#v:dump_action">dump_action</a> :: <a href="GHC-Utils-Error.html#t:DumpAction" title="GHC.Utils.Error">DumpAction</a></li><li><a href="#v:trace_action">trace_action</a> :: <a href="GHC-Utils-Error.html#t:TraceAction" title="GHC.Utils.Error">TraceAction</a></li><li><a href="#v:flushOut">flushOut</a> :: <a href="GHC-Driver-Session.html#t:FlushOut" title="GHC.Driver.Session">FlushOut</a></li><li><a href="#v:flushErr">flushErr</a> :: <a href="GHC-Driver-Session.html#t:FlushErr" title="GHC.Driver.Session">FlushErr</a></li><li><a href="#v:ghcVersionFile">ghcVersionFile</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a></li><li><a href="#v:haddockOptions">haddockOptions</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li><a href="#v:ghciScripts">ghciScripts</a> :: [<a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>]</li><li><a href="#v:pprUserLength">pprUserLength</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:pprCols">pprCols</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:useUnicode">useUnicode</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li><a href="#v:useColor">useColor</a> :: <a href="GHC-Utils-Misc.html#t:OverridingBool" title="GHC.Utils.Misc">OverridingBool</a></li><li><a href="#v:canUseColor">canUseColor</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li><a href="#v:colScheme">colScheme</a> :: <a href="GHC-Utils-Ppr-Colour.html#t:Scheme" title="GHC.Utils.Ppr.Colour">Scheme</a></li><li><a href="#v:profAuto">profAuto</a> :: <a href="GHC-Driver-Session.html#t:ProfAuto" title="GHC.Driver.Session">ProfAuto</a></li><li><a href="#v:interactivePrint">interactivePrint</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li><a href="#v:nextWrapperNum">nextWrapperNum</a> :: <a href="GHC-Data-IOEnv.html#t:IORef" title="GHC.Data.IOEnv">IORef</a> (<a href="GHC-Unit-Module-Env.html#t:ModuleEnv" title="GHC.Unit.Module.Env">ModuleEnv</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a>)</li><li><a href="#v:sseVersion">sseVersion</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="../ghc-boot/GHC-Platform.html#t:SseVersion" title="GHC.Platform">SseVersion</a></li><li><a href="#v:bmiVersion">bmiVersion</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="../ghc-boot/GHC-Platform.html#t:BmiVersion" title="GHC.Platform">BmiVersion</a></li><li><a href="#v:avx">avx</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li><a href="#v:avx2">avx2</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li><a href="#v:avx512cd">avx512cd</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li><a href="#v:avx512er">avx512er</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li><a href="#v:avx512f">avx512f</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li><a href="#v:avx512pf">avx512pf</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li><a href="#v:rtldInfo">rtldInfo</a> :: <a href="GHC-Data-IOEnv.html#t:IORef" title="GHC.Data.IOEnv">IORef</a> (<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Driver-Session.html#t:LinkerInfo" title="GHC.Driver.Session">LinkerInfo</a>)</li><li><a href="#v:rtccInfo">rtccInfo</a> :: <a href="GHC-Data-IOEnv.html#t:IORef" title="GHC.Data.IOEnv">IORef</a> (<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Driver-Session.html#t:CompilerInfo" title="GHC.Driver.Session">CompilerInfo</a>)</li><li><a href="#v:maxInlineAllocSize">maxInlineAllocSize</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:maxInlineMemcpyInsns">maxInlineMemcpyInsns</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:maxInlineMemsetInsns">maxInlineMemsetInsns</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:reverseErrors">reverseErrors</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li><a href="#v:maxErrors">maxErrors</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:initialUnique">initialUnique</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:uniqueIncrement">uniqueIncrement</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:cfgWeightInfo">cfgWeightInfo</a> :: <a href="GHC-Driver-Session.html#t:CfgWeights" title="GHC.Driver.Session">CfgWeights</a></li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:GeneralFlag">GeneralFlag</a><ul class="subs"><li>= <a href="#v:Opt_DumpToFile">Opt_DumpToFile</a></li><li>| <a href="#v:Opt_D_faststring_stats">Opt_D_faststring_stats</a></li><li>| <a href="#v:Opt_D_dump_minimal_imports">Opt_D_dump_minimal_imports</a></li><li>| <a href="#v:Opt_DoCoreLinting">Opt_DoCoreLinting</a></li><li>| <a href="#v:Opt_DoLinearCoreLinting">Opt_DoLinearCoreLinting</a></li><li>| <a href="#v:Opt_DoStgLinting">Opt_DoStgLinting</a></li><li>| <a href="#v:Opt_DoCmmLinting">Opt_DoCmmLinting</a></li><li>| <a href="#v:Opt_DoAsmLinting">Opt_DoAsmLinting</a></li><li>| <a href="#v:Opt_DoAnnotationLinting">Opt_DoAnnotationLinting</a></li><li>| <a href="#v:Opt_NoLlvmMangler">Opt_NoLlvmMangler</a></li><li>| <a href="#v:Opt_FastLlvm">Opt_FastLlvm</a></li><li>| <a href="#v:Opt_NoTypeableBinds">Opt_NoTypeableBinds</a></li><li>| <a href="#v:Opt_WarnIsError">Opt_WarnIsError</a></li><li>| <a href="#v:Opt_ShowWarnGroups">Opt_ShowWarnGroups</a></li><li>| <a href="#v:Opt_HideSourcePaths">Opt_HideSourcePaths</a></li><li>| <a href="#v:Opt_PrintExplicitForalls">Opt_PrintExplicitForalls</a></li><li>| <a href="#v:Opt_PrintExplicitKinds">Opt_PrintExplicitKinds</a></li><li>| <a href="#v:Opt_PrintExplicitCoercions">Opt_PrintExplicitCoercions</a></li><li>| <a href="#v:Opt_PrintExplicitRuntimeReps">Opt_PrintExplicitRuntimeReps</a></li><li>| <a href="#v:Opt_PrintEqualityRelations">Opt_PrintEqualityRelations</a></li><li>| <a href="#v:Opt_PrintAxiomIncomps">Opt_PrintAxiomIncomps</a></li><li>| <a href="#v:Opt_PrintUnicodeSyntax">Opt_PrintUnicodeSyntax</a></li><li>| <a href="#v:Opt_PrintExpandedSynonyms">Opt_PrintExpandedSynonyms</a></li><li>| <a href="#v:Opt_PrintPotentialInstances">Opt_PrintPotentialInstances</a></li><li>| <a href="#v:Opt_PrintTypecheckerElaboration">Opt_PrintTypecheckerElaboration</a></li><li>| <a href="#v:Opt_CallArity">Opt_CallArity</a></li><li>| <a href="#v:Opt_Exitification">Opt_Exitification</a></li><li>| <a href="#v:Opt_Strictness">Opt_Strictness</a></li><li>| <a href="#v:Opt_LateDmdAnal">Opt_LateDmdAnal</a></li><li>| <a href="#v:Opt_KillAbsence">Opt_KillAbsence</a></li><li>| <a href="#v:Opt_KillOneShot">Opt_KillOneShot</a></li><li>| <a href="#v:Opt_FullLaziness">Opt_FullLaziness</a></li><li>| <a href="#v:Opt_FloatIn">Opt_FloatIn</a></li><li>| <a href="#v:Opt_LateSpecialise">Opt_LateSpecialise</a></li><li>| <a href="#v:Opt_Specialise">Opt_Specialise</a></li><li>| <a href="#v:Opt_SpecialiseAggressively">Opt_SpecialiseAggressively</a></li><li>| <a href="#v:Opt_CrossModuleSpecialise">Opt_CrossModuleSpecialise</a></li><li>| <a href="#v:Opt_StaticArgumentTransformation">Opt_StaticArgumentTransformation</a></li><li>| <a href="#v:Opt_CSE">Opt_CSE</a></li><li>| <a href="#v:Opt_StgCSE">Opt_StgCSE</a></li><li>| <a href="#v:Opt_StgLiftLams">Opt_StgLiftLams</a></li><li>| <a href="#v:Opt_LiberateCase">Opt_LiberateCase</a></li><li>| <a href="#v:Opt_SpecConstr">Opt_SpecConstr</a></li><li>| <a href="#v:Opt_SpecConstrKeen">Opt_SpecConstrKeen</a></li><li>| <a href="#v:Opt_DoLambdaEtaExpansion">Opt_DoLambdaEtaExpansion</a></li><li>| <a href="#v:Opt_IgnoreAsserts">Opt_IgnoreAsserts</a></li><li>| <a href="#v:Opt_DoEtaReduction">Opt_DoEtaReduction</a></li><li>| <a href="#v:Opt_CaseMerge">Opt_CaseMerge</a></li><li>| <a href="#v:Opt_CaseFolding">Opt_CaseFolding</a></li><li>| <a href="#v:Opt_UnboxStrictFields">Opt_UnboxStrictFields</a></li><li>| <a href="#v:Opt_UnboxSmallStrictFields">Opt_UnboxSmallStrictFields</a></li><li>| <a href="#v:Opt_DictsCheap">Opt_DictsCheap</a></li><li>| <a href="#v:Opt_EnableRewriteRules">Opt_EnableRewriteRules</a></li><li>| <a href="#v:Opt_EnableThSpliceWarnings">Opt_EnableThSpliceWarnings</a></li><li>| <a href="#v:Opt_RegsGraph">Opt_RegsGraph</a></li><li>| <a href="#v:Opt_RegsIterative">Opt_RegsIterative</a></li><li>| <a href="#v:Opt_PedanticBottoms">Opt_PedanticBottoms</a></li><li>| <a href="#v:Opt_LlvmTBAA">Opt_LlvmTBAA</a></li><li>| <a href="#v:Opt_LlvmFillUndefWithGarbage">Opt_LlvmFillUndefWithGarbage</a></li><li>| <a href="#v:Opt_IrrefutableTuples">Opt_IrrefutableTuples</a></li><li>| <a href="#v:Opt_CmmSink">Opt_CmmSink</a></li><li>| <a href="#v:Opt_CmmStaticPred">Opt_CmmStaticPred</a></li><li>| <a href="#v:Opt_CmmElimCommonBlocks">Opt_CmmElimCommonBlocks</a></li><li>| <a href="#v:Opt_AsmShortcutting">Opt_AsmShortcutting</a></li><li>| <a href="#v:Opt_OmitYields">Opt_OmitYields</a></li><li>| <a href="#v:Opt_FunToThunk">Opt_FunToThunk</a></li><li>| <a href="#v:Opt_DictsStrict">Opt_DictsStrict</a></li><li>| <a href="#v:Opt_DmdTxDictSel">Opt_DmdTxDictSel</a></li><li>| <a href="#v:Opt_Loopification">Opt_Loopification</a></li><li>| <a href="#v:Opt_CfgBlocklayout">Opt_CfgBlocklayout</a></li><li>| <a href="#v:Opt_WeightlessBlocklayout">Opt_WeightlessBlocklayout</a></li><li>| <a href="#v:Opt_CprAnal">Opt_CprAnal</a></li><li>| <a href="#v:Opt_WorkerWrapper">Opt_WorkerWrapper</a></li><li>| <a href="#v:Opt_SolveConstantDicts">Opt_SolveConstantDicts</a></li><li>| <a href="#v:Opt_AlignmentSanitisation">Opt_AlignmentSanitisation</a></li><li>| <a href="#v:Opt_CatchBottoms">Opt_CatchBottoms</a></li><li>| <a href="#v:Opt_NumConstantFolding">Opt_NumConstantFolding</a></li><li>| <a href="#v:Opt_SimplPreInlining">Opt_SimplPreInlining</a></li><li>| <a href="#v:Opt_IgnoreInterfacePragmas">Opt_IgnoreInterfacePragmas</a></li><li>| <a href="#v:Opt_OmitInterfacePragmas">Opt_OmitInterfacePragmas</a></li><li>| <a href="#v:Opt_ExposeAllUnfoldings">Opt_ExposeAllUnfoldings</a></li><li>| <a href="#v:Opt_WriteInterface">Opt_WriteInterface</a></li><li>| <a href="#v:Opt_WriteHie">Opt_WriteHie</a></li><li>| <a href="#v:Opt_AutoSccsOnIndividualCafs">Opt_AutoSccsOnIndividualCafs</a></li><li>| <a href="#v:Opt_ProfCountEntries">Opt_ProfCountEntries</a></li><li>| <a href="#v:Opt_Pp">Opt_Pp</a></li><li>| <a href="#v:Opt_ForceRecomp">Opt_ForceRecomp</a></li><li>| <a href="#v:Opt_IgnoreOptimChanges">Opt_IgnoreOptimChanges</a></li><li>| <a href="#v:Opt_IgnoreHpcChanges">Opt_IgnoreHpcChanges</a></li><li>| <a href="#v:Opt_ExcessPrecision">Opt_ExcessPrecision</a></li><li>| <a href="#v:Opt_EagerBlackHoling">Opt_EagerBlackHoling</a></li><li>| <a href="#v:Opt_NoHsMain">Opt_NoHsMain</a></li><li>| <a href="#v:Opt_SplitSections">Opt_SplitSections</a></li><li>| <a href="#v:Opt_StgStats">Opt_StgStats</a></li><li>| <a href="#v:Opt_HideAllPackages">Opt_HideAllPackages</a></li><li>| <a href="#v:Opt_HideAllPluginPackages">Opt_HideAllPluginPackages</a></li><li>| <a href="#v:Opt_PrintBindResult">Opt_PrintBindResult</a></li><li>| <a href="#v:Opt_Haddock">Opt_Haddock</a></li><li>| <a href="#v:Opt_HaddockOptions">Opt_HaddockOptions</a></li><li>| <a href="#v:Opt_BreakOnException">Opt_BreakOnException</a></li><li>| <a href="#v:Opt_BreakOnError">Opt_BreakOnError</a></li><li>| <a href="#v:Opt_PrintEvldWithShow">Opt_PrintEvldWithShow</a></li><li>| <a href="#v:Opt_PrintBindContents">Opt_PrintBindContents</a></li><li>| <a href="#v:Opt_GenManifest">Opt_GenManifest</a></li><li>| <a href="#v:Opt_EmbedManifest">Opt_EmbedManifest</a></li><li>| <a href="#v:Opt_SharedImplib">Opt_SharedImplib</a></li><li>| <a href="#v:Opt_BuildingCabalPackage">Opt_BuildingCabalPackage</a></li><li>| <a href="#v:Opt_IgnoreDotGhci">Opt_IgnoreDotGhci</a></li><li>| <a href="#v:Opt_GhciSandbox">Opt_GhciSandbox</a></li><li>| <a href="#v:Opt_GhciHistory">Opt_GhciHistory</a></li><li>| <a href="#v:Opt_GhciLeakCheck">Opt_GhciLeakCheck</a></li><li>| <a href="#v:Opt_ValidateHie">Opt_ValidateHie</a></li><li>| <a href="#v:Opt_LocalGhciHistory">Opt_LocalGhciHistory</a></li><li>| <a href="#v:Opt_NoIt">Opt_NoIt</a></li><li>| <a href="#v:Opt_HelpfulErrors">Opt_HelpfulErrors</a></li><li>| <a href="#v:Opt_DeferTypeErrors">Opt_DeferTypeErrors</a></li><li>| <a href="#v:Opt_DeferTypedHoles">Opt_DeferTypedHoles</a></li><li>| <a href="#v:Opt_DeferOutOfScopeVariables">Opt_DeferOutOfScopeVariables</a></li><li>| <a href="#v:Opt_PIC">Opt_PIC</a></li><li>| <a href="#v:Opt_PIE">Opt_PIE</a></li><li>| <a href="#v:Opt_PICExecutable">Opt_PICExecutable</a></li><li>| <a href="#v:Opt_ExternalDynamicRefs">Opt_ExternalDynamicRefs</a></li><li>| <a href="#v:Opt_Ticky">Opt_Ticky</a></li><li>| <a href="#v:Opt_Ticky_Allocd">Opt_Ticky_Allocd</a></li><li>| <a href="#v:Opt_Ticky_LNE">Opt_Ticky_LNE</a></li><li>| <a href="#v:Opt_Ticky_Dyn_Thunk">Opt_Ticky_Dyn_Thunk</a></li><li>| <a href="#v:Opt_RPath">Opt_RPath</a></li><li>| <a href="#v:Opt_RelativeDynlibPaths">Opt_RelativeDynlibPaths</a></li><li>| <a href="#v:Opt_Hpc">Opt_Hpc</a></li><li>| <a href="#v:Opt_FlatCache">Opt_FlatCache</a></li><li>| <a href="#v:Opt_ExternalInterpreter">Opt_ExternalInterpreter</a></li><li>| <a href="#v:Opt_OptimalApplicativeDo">Opt_OptimalApplicativeDo</a></li><li>| <a href="#v:Opt_VersionMacros">Opt_VersionMacros</a></li><li>| <a href="#v:Opt_WholeArchiveHsLibs">Opt_WholeArchiveHsLibs</a></li><li>| <a href="#v:Opt_SingleLibFolder">Opt_SingleLibFolder</a></li><li>| <a href="#v:Opt_KeepCAFs">Opt_KeepCAFs</a></li><li>| <a href="#v:Opt_KeepGoing">Opt_KeepGoing</a></li><li>| <a href="#v:Opt_ByteCodeIfUnboxed">Opt_ByteCodeIfUnboxed</a></li><li>| <a href="#v:Opt_LinkRts">Opt_LinkRts</a></li><li>| <a href="#v:Opt_ErrorSpans">Opt_ErrorSpans</a></li><li>| <a href="#v:Opt_DeferDiagnostics">Opt_DeferDiagnostics</a></li><li>| <a href="#v:Opt_DiagnosticsShowCaret">Opt_DiagnosticsShowCaret</a></li><li>| <a href="#v:Opt_PprCaseAsLet">Opt_PprCaseAsLet</a></li><li>| <a href="#v:Opt_PprShowTicks">Opt_PprShowTicks</a></li><li>| <a href="#v:Opt_ShowHoleConstraints">Opt_ShowHoleConstraints</a></li><li>| <a href="#v:Opt_ShowValidHoleFits">Opt_ShowValidHoleFits</a></li><li>| <a href="#v:Opt_SortValidHoleFits">Opt_SortValidHoleFits</a></li><li>| <a href="#v:Opt_SortBySizeHoleFits">Opt_SortBySizeHoleFits</a></li><li>| <a href="#v:Opt_SortBySubsumHoleFits">Opt_SortBySubsumHoleFits</a></li><li>| <a href="#v:Opt_AbstractRefHoleFits">Opt_AbstractRefHoleFits</a></li><li>| <a href="#v:Opt_UnclutterValidHoleFits">Opt_UnclutterValidHoleFits</a></li><li>| <a href="#v:Opt_ShowTypeAppOfHoleFits">Opt_ShowTypeAppOfHoleFits</a></li><li>| <a href="#v:Opt_ShowTypeAppVarsOfHoleFits">Opt_ShowTypeAppVarsOfHoleFits</a></li><li>| <a href="#v:Opt_ShowDocsOfHoleFits">Opt_ShowDocsOfHoleFits</a></li><li>| <a href="#v:Opt_ShowTypeOfHoleFits">Opt_ShowTypeOfHoleFits</a></li><li>| <a href="#v:Opt_ShowProvOfHoleFits">Opt_ShowProvOfHoleFits</a></li><li>| <a href="#v:Opt_ShowMatchesOfHoleFits">Opt_ShowMatchesOfHoleFits</a></li><li>| <a href="#v:Opt_ShowLoadedModules">Opt_ShowLoadedModules</a></li><li>| <a href="#v:Opt_HexWordLiterals">Opt_HexWordLiterals</a></li><li>| <a href="#v:Opt_SuppressCoercions">Opt_SuppressCoercions</a></li><li>| <a href="#v:Opt_SuppressVarKinds">Opt_SuppressVarKinds</a></li><li>| <a href="#v:Opt_SuppressModulePrefixes">Opt_SuppressModulePrefixes</a></li><li>| <a href="#v:Opt_SuppressTypeApplications">Opt_SuppressTypeApplications</a></li><li>| <a href="#v:Opt_SuppressIdInfo">Opt_SuppressIdInfo</a></li><li>| <a href="#v:Opt_SuppressUnfoldings">Opt_SuppressUnfoldings</a></li><li>| <a href="#v:Opt_SuppressTypeSignatures">Opt_SuppressTypeSignatures</a></li><li>| <a href="#v:Opt_SuppressUniques">Opt_SuppressUniques</a></li><li>| <a href="#v:Opt_SuppressStgExts">Opt_SuppressStgExts</a></li><li>| <a href="#v:Opt_SuppressTicks">Opt_SuppressTicks</a></li><li>| <a href="#v:Opt_SuppressTimestamps">Opt_SuppressTimestamps</a></li><li>| <a href="#v:Opt_AutoLinkPackages">Opt_AutoLinkPackages</a></li><li>| <a href="#v:Opt_ImplicitImportQualified">Opt_ImplicitImportQualified</a></li><li>| <a href="#v:Opt_KeepHscppFiles">Opt_KeepHscppFiles</a></li><li>| <a href="#v:Opt_KeepHiDiffs">Opt_KeepHiDiffs</a></li><li>| <a href="#v:Opt_KeepHcFiles">Opt_KeepHcFiles</a></li><li>| <a href="#v:Opt_KeepSFiles">Opt_KeepSFiles</a></li><li>| <a href="#v:Opt_KeepTmpFiles">Opt_KeepTmpFiles</a></li><li>| <a href="#v:Opt_KeepRawTokenStream">Opt_KeepRawTokenStream</a></li><li>| <a href="#v:Opt_KeepLlvmFiles">Opt_KeepLlvmFiles</a></li><li>| <a href="#v:Opt_KeepHiFiles">Opt_KeepHiFiles</a></li><li>| <a href="#v:Opt_KeepOFiles">Opt_KeepOFiles</a></li><li>| <a href="#v:Opt_BuildDynamicToo">Opt_BuildDynamicToo</a></li><li>| <a href="#v:Opt_DistrustAllPackages">Opt_DistrustAllPackages</a></li><li>| <a href="#v:Opt_PackageTrust">Opt_PackageTrust</a></li><li>| <a href="#v:Opt_PluginTrustworthy">Opt_PluginTrustworthy</a></li><li>| <a href="#v:Opt_G_NoStateHack">Opt_G_NoStateHack</a></li><li>| <a href="#v:Opt_G_NoOptCoercion">Opt_G_NoOptCoercion</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:Severity">Severity</a><ul class="subs"><li>= <a href="#v:SevOutput">SevOutput</a></li><li>| <a href="#v:SevFatal">SevFatal</a></li><li>| <a href="#v:SevInteractive">SevInteractive</a></li><li>| <a href="#v:SevDump">SevDump</a></li><li>| <a href="#v:SevInfo">SevInfo</a></li><li>| <a href="#v:SevWarning">SevWarning</a></li><li>| <a href="#v:SevError">SevError</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:HscTarget">HscTarget</a><ul class="subs"><li>= <a href="#v:HscC">HscC</a></li><li>| <a href="#v:HscAsm">HscAsm</a></li><li>| <a href="#v:HscLlvm">HscLlvm</a></li><li>| <a href="#v:HscInterpreted">HscInterpreted</a></li><li>| <a href="#v:HscNothing">HscNothing</a></li></ul></li><li class="src short"><a href="#v:gopt">gopt</a> :: <a href="GHC.html#t:GeneralFlag" title="GHC">GeneralFlag</a> -&gt; <a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:GhcMode">GhcMode</a><ul class="subs"><li>= <a href="#v:CompManager">CompManager</a></li><li>| <a href="#v:OneShot">OneShot</a></li><li>| <a href="#v:MkDepend">MkDepend</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:GhcLink">GhcLink</a><ul class="subs"><li>= <a href="#v:NoLink">NoLink</a></li><li>| <a href="#v:LinkBinary">LinkBinary</a></li><li>| <a href="#v:LinkInMemory">LinkInMemory</a></li><li>| <a href="#v:LinkDynLib">LinkDynLib</a></li><li>| <a href="#v:LinkStaticLib">LinkStaticLib</a></li></ul></li><li class="src short"><a href="#v:defaultObjectTarget">defaultObjectTarget</a> :: <a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a> -&gt; <a href="GHC.html#t:HscTarget" title="GHC">HscTarget</a></li><li class="src short"><a href="#v:parseDynamicFlags">parseDynamicFlags</a> :: <a href="GHC-Utils-Monad.html#t:MonadIO" title="GHC.Utils.Monad">MonadIO</a> m =&gt; <a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a> -&gt; [<a href="GHC.html#t:Located" title="GHC">Located</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>] -&gt; m (<a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a>, [<a href="GHC.html#t:Located" title="GHC">Located</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>], [<a href="GHC-Driver-CmdLine.html#t:Warn" title="GHC.Driver.CmdLine">Warn</a>])</li><li class="src short"><a href="#v:getSessionDynFlags">getSessionDynFlags</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m <a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a></li><li class="src short"><a href="#v:setSessionDynFlags">setSessionDynFlags</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a> -&gt; m ()</li><li class="src short"><a href="#v:getProgramDynFlags">getProgramDynFlags</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m <a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a></li><li class="src short"><a href="#v:setProgramDynFlags">setProgramDynFlags</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a> -&gt; m <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:setLogAction">setLogAction</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Driver-Session.html#t:LogAction" title="GHC.Driver.Session">LogAction</a> -&gt; m ()</li><li class="src short"><a href="#v:getInteractiveDynFlags">getInteractiveDynFlags</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m <a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a></li><li class="src short"><a href="#v:setInteractiveDynFlags">setInteractiveDynFlags</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a> -&gt; m ()</li><li class="src short"><a href="#v:interpretPackageEnv">interpretPackageEnv</a> :: <a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a> -&gt; <a href="GHC-Prelude.html#t:IO" title="GHC.Prelude">IO</a> <a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Target">Target</a> = <a href="#v:Target">Target</a> {<ul class="subs"><li><a href="#v:targetId">targetId</a> :: !<a href="GHC.html#t:TargetId" title="GHC">TargetId</a></li><li><a href="#v:targetAllowObjCode">targetAllowObjCode</a> :: !<a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li><a href="#v:targetContents">targetContents</a> :: !(<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (<a href="GHC-Driver-Types.html#t:InputFileBuffer" title="GHC.Driver.Types">InputFileBuffer</a>, <a href="../time/Data-Time-Clock.html#t:UTCTime" title="Data.Time.Clock">UTCTime</a>))</li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:TargetId">TargetId</a><ul class="subs"><li>= <a href="#v:TargetModule">TargetModule</a> <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a></li><li>| <a href="#v:TargetFile">TargetFile</a> <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a> (<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:Phase" title="GHC">Phase</a>)</li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:Phase">Phase</a></li><li class="src short"><a href="#v:setTargets">setTargets</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; [<a href="GHC.html#t:Target" title="GHC">Target</a>] -&gt; m ()</li><li class="src short"><a href="#v:getTargets">getTargets</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m [<a href="GHC.html#t:Target" title="GHC">Target</a>]</li><li class="src short"><a href="#v:addTarget">addTarget</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:Target" title="GHC">Target</a> -&gt; m ()</li><li class="src short"><a href="#v:removeTarget">removeTarget</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:TargetId" title="GHC">TargetId</a> -&gt; m ()</li><li class="src short"><a href="#v:guessTarget">guessTarget</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:Phase" title="GHC">Phase</a> -&gt; m <a href="GHC.html#t:Target" title="GHC">Target</a></li><li class="src short"><a href="#v:depanal">depanal</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; [<a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a>] -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> -&gt; m <a href="GHC.html#t:ModuleGraph" title="GHC">ModuleGraph</a></li><li class="src short"><a href="#v:depanalE">depanalE</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; [<a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a>] -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> -&gt; m (<a href="GHC-Utils-Error.html#t:ErrorMessages" title="GHC.Utils.Error">ErrorMessages</a>, <a href="GHC.html#t:ModuleGraph" title="GHC">ModuleGraph</a>)</li><li class="src short"><a href="#v:load">load</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:LoadHowMuch" title="GHC">LoadHowMuch</a> -&gt; m <a href="GHC.html#t:SuccessFlag" title="GHC">SuccessFlag</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:LoadHowMuch">LoadHowMuch</a><ul class="subs"><li>= <a href="#v:LoadAllTargets">LoadAllTargets</a></li><li>| <a href="#v:LoadUpTo">LoadUpTo</a> <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a></li><li>| <a href="#v:LoadDependenciesOf">LoadDependenciesOf</a> <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:InteractiveImport">InteractiveImport</a><ul class="subs"><li>= <a href="#v:IIDecl">IIDecl</a> (<a href="GHC-Hs-ImpExp.html#t:ImportDecl" title="GHC.Hs.ImpExp">ImportDecl</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a>)</li><li>| <a href="#v:IIModule">IIModule</a> <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:SuccessFlag">SuccessFlag</a><ul class="subs"><li>= <a href="#v:Succeeded">Succeeded</a></li><li>| <a href="#v:Failed">Failed</a></li></ul></li><li class="src short"><a href="#v:succeeded">succeeded</a> :: <a href="GHC.html#t:SuccessFlag" title="GHC">SuccessFlag</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:failed">failed</a> :: <a href="GHC.html#t:SuccessFlag" title="GHC">SuccessFlag</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:defaultWarnErrLogger">defaultWarnErrLogger</a> :: <a href="GHC.html#t:WarnErrLogger" title="GHC">WarnErrLogger</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:WarnErrLogger">WarnErrLogger</a> = <span class="keyword">forall</span> m. <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Driver-Types.html#t:SourceError" title="GHC.Driver.Types">SourceError</a> -&gt; m ()</li><li class="src short"><a href="#v:workingDirectoryChanged">workingDirectoryChanged</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m ()</li><li class="src short"><a href="#v:parseModule">parseModule</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a> -&gt; m <a href="GHC.html#t:ParsedModule" title="GHC">ParsedModule</a></li><li class="src short"><a href="#v:typecheckModule">typecheckModule</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:ParsedModule" title="GHC">ParsedModule</a> -&gt; m <a href="GHC.html#t:TypecheckedModule" title="GHC">TypecheckedModule</a></li><li class="src short"><a href="#v:desugarModule">desugarModule</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:TypecheckedModule" title="GHC">TypecheckedModule</a> -&gt; m <a href="GHC.html#t:DesugaredModule" title="GHC">DesugaredModule</a></li><li class="src short"><a href="#v:loadModule">loadModule</a> :: (<a href="GHC.html#t:TypecheckedMod" title="GHC">TypecheckedMod</a> mod, <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m) =&gt; mod -&gt; m mod</li><li class="src short"><span class="keyword">data</span> <a href="#t:ParsedModule">ParsedModule</a> = <a href="#v:ParsedModule">ParsedModule</a> {<ul class="subs"><li><a href="#v:pm_mod_summary">pm_mod_summary</a> :: <a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a></li><li><a href="#v:pm_parsed_source">pm_parsed_source</a> :: <a href="GHC.html#t:ParsedSource" title="GHC">ParsedSource</a></li><li><a href="#v:pm_extra_src_files">pm_extra_src_files</a> :: [<a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a>]</li><li><a href="#v:pm_annotations">pm_annotations</a> :: <a href="GHC.html#t:ApiAnns" title="GHC">ApiAnns</a></li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:TypecheckedModule">TypecheckedModule</a> = <a href="#v:TypecheckedModule">TypecheckedModule</a> {<ul class="subs"><li><a href="#v:tm_parsed_module">tm_parsed_module</a> :: <a href="GHC.html#t:ParsedModule" title="GHC">ParsedModule</a></li><li><a href="#v:tm_renamed_source">tm_renamed_source</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:RenamedSource" title="GHC">RenamedSource</a></li><li><a href="#v:tm_typechecked_source">tm_typechecked_source</a> :: <a href="GHC.html#t:TypecheckedSource" title="GHC">TypecheckedSource</a></li><li><a href="#v:tm_checked_module_info">tm_checked_module_info</a> :: <a href="GHC.html#t:ModuleInfo" title="GHC">ModuleInfo</a></li><li><a href="#v:tm_internals_">tm_internals_</a> :: (<a href="GHC-Tc-Types.html#t:TcGblEnv" title="GHC.Tc.Types">TcGblEnv</a>, <a href="GHC-Driver-Types.html#t:ModDetails" title="GHC.Driver.Types">ModDetails</a>)</li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:DesugaredModule">DesugaredModule</a> = <a href="#v:DesugaredModule">DesugaredModule</a> {<ul class="subs"><li><a href="#v:dm_typechecked_module">dm_typechecked_module</a> :: <a href="GHC.html#t:TypecheckedModule" title="GHC">TypecheckedModule</a></li><li><a href="#v:dm_core_module">dm_core_module</a> :: <a href="GHC-Driver-Types.html#t:ModGuts" title="GHC.Driver.Types">ModGuts</a></li></ul>}</li><li class="src short"><span class="keyword">type</span> <a href="#t:TypecheckedSource">TypecheckedSource</a> = <a href="GHC-Hs-Binds.html#t:LHsBinds" title="GHC.Hs.Binds">LHsBinds</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:ParsedSource">ParsedSource</a> = <a href="GHC.html#t:Located" title="GHC">Located</a> <a href="GHC-Hs.html#t:HsModule" title="GHC.Hs">HsModule</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:RenamedSource">RenamedSource</a> = (<a href="GHC-Hs-Decls.html#t:HsGroup" title="GHC.Hs.Decls">HsGroup</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a>, [<a href="GHC-Hs-ImpExp.html#t:LImportDecl" title="GHC.Hs.ImpExp">LImportDecl</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a>], <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> [(<a href="GHC-Hs-ImpExp.html#t:LIE" title="GHC.Hs.ImpExp">LIE</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a>, <a href="GHC-Types-Avail.html#t:Avails" title="GHC.Types.Avail">Avails</a>)], <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Hs-Doc.html#t:LHsDocString" title="GHC.Hs.Doc">LHsDocString</a>)</li><li class="src short"><span class="keyword">class</span> <a href="GHC.html#t:ParsedMod" title="GHC">ParsedMod</a> m =&gt; <a href="#t:TypecheckedMod">TypecheckedMod</a> m</li><li class="src short"><span class="keyword">class</span> <a href="#t:ParsedMod">ParsedMod</a> m</li><li class="src short"><a href="#v:moduleInfo">moduleInfo</a> :: <a href="GHC.html#t:TypecheckedMod" title="GHC">TypecheckedMod</a> m =&gt; m -&gt; <a href="GHC.html#t:ModuleInfo" title="GHC">ModuleInfo</a></li><li class="src short"><a href="#v:renamedSource">renamedSource</a> :: <a href="GHC.html#t:TypecheckedMod" title="GHC">TypecheckedMod</a> m =&gt; m -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:RenamedSource" title="GHC">RenamedSource</a></li><li class="src short"><a href="#v:typecheckedSource">typecheckedSource</a> :: <a href="GHC.html#t:TypecheckedMod" title="GHC">TypecheckedMod</a> m =&gt; m -&gt; <a href="GHC.html#t:TypecheckedSource" title="GHC">TypecheckedSource</a></li><li class="src short"><a href="#v:parsedSource">parsedSource</a> :: <a href="GHC.html#t:ParsedMod" title="GHC">ParsedMod</a> m =&gt; m -&gt; <a href="GHC.html#t:ParsedSource" title="GHC">ParsedSource</a></li><li class="src short"><a href="#v:coreModule">coreModule</a> :: DesugaredMod m =&gt; m -&gt; <a href="GHC-Driver-Types.html#t:ModGuts" title="GHC.Driver.Types">ModGuts</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:CoreModule">CoreModule</a> = <a href="#v:CoreModule">CoreModule</a> {<ul class="subs"><li><a href="#v:cm_module">cm_module</a> :: !<a href="GHC.html#t:Module" title="GHC">Module</a></li><li><a href="#v:cm_types">cm_types</a> :: !<a href="GHC-Driver-Types.html#t:TypeEnv" title="GHC.Driver.Types">TypeEnv</a></li><li><a href="#v:cm_binds">cm_binds</a> :: <a href="GHC-Core.html#t:CoreProgram" title="GHC.Core">CoreProgram</a></li><li><a href="#v:cm_safe">cm_safe</a> :: <a href="GHC.html#t:SafeHaskellMode" title="GHC">SafeHaskellMode</a></li></ul>}</li><li class="src short"><a href="#v:compileToCoreModule">compileToCoreModule</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a> -&gt; m <a href="GHC.html#t:CoreModule" title="GHC">CoreModule</a></li><li class="src short"><a href="#v:compileToCoreSimplified">compileToCoreSimplified</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a> -&gt; m <a href="GHC.html#t:CoreModule" title="GHC">CoreModule</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:ModuleGraph">ModuleGraph</a></li><li class="src short"><a href="#v:emptyMG">emptyMG</a> :: <a href="GHC.html#t:ModuleGraph" title="GHC">ModuleGraph</a></li><li class="src short"><a href="#v:mapMG">mapMG</a> :: (<a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a> -&gt; <a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a>) -&gt; <a href="GHC.html#t:ModuleGraph" title="GHC">ModuleGraph</a> -&gt; <a href="GHC.html#t:ModuleGraph" title="GHC">ModuleGraph</a></li><li class="src short"><a href="#v:mkModuleGraph">mkModuleGraph</a> :: [<a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a>] -&gt; <a href="GHC.html#t:ModuleGraph" title="GHC">ModuleGraph</a></li><li class="src short"><a href="#v:mgModSummaries">mgModSummaries</a> :: <a href="GHC.html#t:ModuleGraph" title="GHC">ModuleGraph</a> -&gt; [<a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a>]</li><li class="src short"><a href="#v:mgLookupModule">mgLookupModule</a> :: <a href="GHC.html#t:ModuleGraph" title="GHC">ModuleGraph</a> -&gt; <a href="GHC.html#t:Module" title="GHC">Module</a> -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:ModSummary">ModSummary</a> = <a href="#v:ModSummary">ModSummary</a> {<ul class="subs"><li><a href="#v:ms_mod">ms_mod</a> :: <a href="GHC.html#t:Module" title="GHC">Module</a></li><li><a href="#v:ms_hsc_src">ms_hsc_src</a> :: <a href="GHC-Driver-Types.html#t:HscSource" title="GHC.Driver.Types">HscSource</a></li><li><a href="#v:ms_location">ms_location</a> :: <a href="GHC.html#t:ModLocation" title="GHC">ModLocation</a></li><li><a href="#v:ms_hs_date">ms_hs_date</a> :: <a href="../time/Data-Time-Clock.html#t:UTCTime" title="Data.Time.Clock">UTCTime</a></li><li><a href="#v:ms_obj_date">ms_obj_date</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="../time/Data-Time-Clock.html#t:UTCTime" title="Data.Time.Clock">UTCTime</a></li><li><a href="#v:ms_iface_date">ms_iface_date</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="../time/Data-Time-Clock.html#t:UTCTime" title="Data.Time.Clock">UTCTime</a></li><li><a href="#v:ms_hie_date">ms_hie_date</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="../time/Data-Time-Clock.html#t:UTCTime" title="Data.Time.Clock">UTCTime</a></li><li><a href="#v:ms_srcimps">ms_srcimps</a> :: [(<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Data-FastString.html#t:FastString" title="GHC.Data.FastString">FastString</a>, <a href="GHC.html#t:Located" title="GHC">Located</a> <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a>)]</li><li><a href="#v:ms_textual_imps">ms_textual_imps</a> :: [(<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Data-FastString.html#t:FastString" title="GHC.Data.FastString">FastString</a>, <a href="GHC.html#t:Located" title="GHC">Located</a> <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a>)]</li><li><a href="#v:ms_parsed_mod">ms_parsed_mod</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Driver-Types.html#t:HsParsedModule" title="GHC.Driver.Types">HsParsedModule</a></li><li><a href="#v:ms_hspp_file">ms_hspp_file</a> :: <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a></li><li><a href="#v:ms_hspp_opts">ms_hspp_opts</a> :: <a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a></li><li><a href="#v:ms_hspp_buf">ms_hspp_buf</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Data-StringBuffer.html#t:StringBuffer" title="GHC.Data.StringBuffer">StringBuffer</a></li></ul>}</li><li class="src short"><a href="#v:ms_mod_name">ms_mod_name</a> :: <a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a> -&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:ModLocation">ModLocation</a> = <a href="#v:ModLocation">ModLocation</a> {<ul class="subs"><li><a href="#v:ml_hs_file">ml_hs_file</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a></li><li><a href="#v:ml_hi_file">ml_hi_file</a> :: <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a></li><li><a href="#v:ml_obj_file">ml_obj_file</a> :: <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a></li><li><a href="#v:ml_hie_file">ml_hie_file</a> :: <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a></li></ul>}</li><li class="src short"><a href="#v:getModSummary">getModSummary</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; m <a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a></li><li class="src short"><a href="#v:getModuleGraph">getModuleGraph</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m <a href="GHC.html#t:ModuleGraph" title="GHC">ModuleGraph</a></li><li class="src short"><a href="#v:isLoaded">isLoaded</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; m <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:topSortModuleGraph">topSortModuleGraph</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> -&gt; <a href="GHC.html#t:ModuleGraph" title="GHC">ModuleGraph</a> -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; [<a href="GHC-Data-Graph-Directed.html#t:SCC" title="GHC.Data.Graph.Directed">SCC</a> <a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a>]</li><li class="src short"><span class="keyword">data</span> <a href="#t:ModuleInfo">ModuleInfo</a></li><li class="src short"><a href="#v:getModuleInfo">getModuleInfo</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:Module" title="GHC">Module</a> -&gt; m (<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:ModuleInfo" title="GHC">ModuleInfo</a>)</li><li class="src short"><a href="#v:modInfoTyThings">modInfoTyThings</a> :: <a href="GHC.html#t:ModuleInfo" title="GHC">ModuleInfo</a> -&gt; [<a href="GHC.html#t:TyThing" title="GHC">TyThing</a>]</li><li class="src short"><a href="#v:modInfoTopLevelScope">modInfoTopLevelScope</a> :: <a href="GHC.html#t:ModuleInfo" title="GHC">ModuleInfo</a> -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> [<a href="GHC.html#t:Name" title="GHC">Name</a>]</li><li class="src short"><a href="#v:modInfoExports">modInfoExports</a> :: <a href="GHC.html#t:ModuleInfo" title="GHC">ModuleInfo</a> -&gt; [<a href="GHC.html#t:Name" title="GHC">Name</a>]</li><li class="src short"><a href="#v:modInfoExportsWithSelectors">modInfoExportsWithSelectors</a> :: <a href="GHC.html#t:ModuleInfo" title="GHC">ModuleInfo</a> -&gt; [<a href="GHC.html#t:Name" title="GHC">Name</a>]</li><li class="src short"><a href="#v:modInfoInstances">modInfoInstances</a> :: <a href="GHC.html#t:ModuleInfo" title="GHC">ModuleInfo</a> -&gt; [<a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a>]</li><li class="src short"><a href="#v:modInfoIsExportedName">modInfoIsExportedName</a> :: <a href="GHC.html#t:ModuleInfo" title="GHC">ModuleInfo</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:modInfoLookupName">modInfoLookupName</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:ModuleInfo" title="GHC">ModuleInfo</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; m (<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:TyThing" title="GHC">TyThing</a>)</li><li class="src short"><a href="#v:modInfoIface">modInfoIface</a> :: <a href="GHC.html#t:ModuleInfo" title="GHC">ModuleInfo</a> -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:ModIface" title="GHC">ModIface</a></li><li class="src short"><a href="#v:modInfoRdrEnv">modInfoRdrEnv</a> :: <a href="GHC.html#t:ModuleInfo" title="GHC">ModuleInfo</a> -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Types-Name-Reader.html#t:GlobalRdrEnv" title="GHC.Types.Name.Reader">GlobalRdrEnv</a></li><li class="src short"><a href="#v:modInfoSafe">modInfoSafe</a> :: <a href="GHC.html#t:ModuleInfo" title="GHC">ModuleInfo</a> -&gt; <a href="GHC.html#t:SafeHaskellMode" title="GHC">SafeHaskellMode</a></li><li class="src short"><a href="#v:lookupGlobalName">lookupGlobalName</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; m (<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:TyThing" title="GHC">TyThing</a>)</li><li class="src short"><a href="#v:findGlobalAnns">findGlobalAnns</a> :: (<a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m, <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> a) =&gt; ([<a href="../base/Data-Word.html#t:Word8" title="Data.Word">Word8</a>] -&gt; a) -&gt; <a href="GHC-Types-Annotations.html#t:AnnTarget" title="GHC.Types.Annotations">AnnTarget</a> <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; m [a]</li><li class="src short"><a href="#v:mkPrintUnqualifiedForModule">mkPrintUnqualifiedForModule</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:ModuleInfo" title="GHC">ModuleInfo</a> -&gt; m (<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:PrintUnqualified" title="GHC">PrintUnqualified</a>)</li><li class="src short"><span class="keyword">type</span> <a href="#t:ModIface">ModIface</a> = <a href="GHC.html#t:ModIface_" title="GHC">ModIface_</a> 'ModIfaceFinal</li><li class="src short"><span class="keyword">data</span> <a href="#t:ModIface_">ModIface_</a> (phase :: ModIfacePhase) = <a href="#v:ModIface">ModIface</a> {<ul class="subs"><li><a href="#v:mi_module">mi_module</a> :: !<a href="GHC.html#t:Module" title="GHC">Module</a></li><li><a href="#v:mi_sig_of">mi_sig_of</a> :: !(<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:Module" title="GHC">Module</a>)</li><li><a href="#v:mi_hsc_src">mi_hsc_src</a> :: !<a href="GHC-Driver-Types.html#t:HscSource" title="GHC.Driver.Types">HscSource</a></li><li><a href="#v:mi_deps">mi_deps</a> :: <a href="GHC-Driver-Types.html#t:Dependencies" title="GHC.Driver.Types">Dependencies</a></li><li><a href="#v:mi_usages">mi_usages</a> :: [<a href="GHC-Driver-Types.html#t:Usage" title="GHC.Driver.Types">Usage</a>]</li><li><a href="#v:mi_exports">mi_exports</a> :: ![<a href="GHC-Driver-Types.html#t:IfaceExport" title="GHC.Driver.Types">IfaceExport</a>]</li><li><a href="#v:mi_used_th">mi_used_th</a> :: !<a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li><a href="#v:mi_fixities">mi_fixities</a> :: [(<a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a>, <a href="GHC-Types-Basic.html#t:Fixity" title="GHC.Types.Basic">Fixity</a>)]</li><li><a href="#v:mi_warns">mi_warns</a> :: <a href="GHC-Driver-Types.html#t:Warnings" title="GHC.Driver.Types">Warnings</a></li><li><a href="#v:mi_anns">mi_anns</a> :: [<a href="GHC-Iface-Syntax.html#t:IfaceAnnotation" title="GHC.Iface.Syntax">IfaceAnnotation</a>]</li><li><a href="#v:mi_decls">mi_decls</a> :: [IfaceDeclExts phase]</li><li><a href="#v:mi_globals">mi_globals</a> :: !(<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Types-Name-Reader.html#t:GlobalRdrEnv" title="GHC.Types.Name.Reader">GlobalRdrEnv</a>)</li><li><a href="#v:mi_insts">mi_insts</a> :: [<a href="GHC-Iface-Syntax.html#t:IfaceClsInst" title="GHC.Iface.Syntax">IfaceClsInst</a>]</li><li><a href="#v:mi_fam_insts">mi_fam_insts</a> :: [<a href="GHC-Iface-Syntax.html#t:IfaceFamInst" title="GHC.Iface.Syntax">IfaceFamInst</a>]</li><li><a href="#v:mi_rules">mi_rules</a> :: [<a href="GHC-Iface-Syntax.html#t:IfaceRule" title="GHC.Iface.Syntax">IfaceRule</a>]</li><li><a href="#v:mi_hpc">mi_hpc</a> :: !<a href="GHC-Driver-Types.html#t:AnyHpcUsage" title="GHC.Driver.Types">AnyHpcUsage</a></li><li><a href="#v:mi_trust">mi_trust</a> :: !<a href="GHC-Driver-Types.html#t:IfaceTrustInfo" title="GHC.Driver.Types">IfaceTrustInfo</a></li><li><a href="#v:mi_trust_pkg">mi_trust_pkg</a> :: !<a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li><a href="#v:mi_complete_sigs">mi_complete_sigs</a> :: [<a href="GHC-Iface-Syntax.html#t:IfaceCompleteMatch" title="GHC.Iface.Syntax">IfaceCompleteMatch</a>]</li><li><a href="#v:mi_doc_hdr">mi_doc_hdr</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Hs-Doc.html#t:HsDocString" title="GHC.Hs.Doc">HsDocString</a></li><li><a href="#v:mi_decl_docs">mi_decl_docs</a> :: <a href="GHC-Hs-Doc.html#t:DeclDocMap" title="GHC.Hs.Doc">DeclDocMap</a></li><li><a href="#v:mi_arg_docs">mi_arg_docs</a> :: <a href="GHC-Hs-Doc.html#t:ArgDocMap" title="GHC.Hs.Doc">ArgDocMap</a></li><li><a href="#v:mi_final_exts">mi_final_exts</a> :: !(IfaceBackendExts phase)</li><li><a href="#v:mi_ext_fields">mi_ext_fields</a> :: <a href="GHC-Driver-Types.html#t:ExtensibleFields" title="GHC.Driver.Types">ExtensibleFields</a></li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:SafeHaskellMode">SafeHaskellMode</a><ul class="subs"><li>= <a href="#v:Sf_None">Sf_None</a></li><li>| <a href="#v:Sf_Unsafe">Sf_Unsafe</a></li><li>| <a href="#v:Sf_Trustworthy">Sf_Trustworthy</a></li><li>| <a href="#v:Sf_Safe">Sf_Safe</a></li><li>| <a href="#v:Sf_SafeInferred">Sf_SafeInferred</a></li><li>| <a href="#v:Sf_Ignore">Sf_Ignore</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:PrintUnqualified">PrintUnqualified</a></li><li class="src short"><a href="#v:alwaysQualify">alwaysQualify</a> :: <a href="GHC.html#t:PrintUnqualified" title="GHC">PrintUnqualified</a></li><li class="src short"><a href="#v:execStmt">execStmt</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; <a href="GHC.html#t:ExecOptions" title="GHC">ExecOptions</a> -&gt; m <a href="GHC.html#t:ExecResult" title="GHC">ExecResult</a></li><li class="src short"><a href="#v:execStmt-39-">execStmt'</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Hs-Expr.html#t:GhciLStmt" title="GHC.Hs.Expr">GhciLStmt</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; <a href="GHC.html#t:ExecOptions" title="GHC">ExecOptions</a> -&gt; m <a href="GHC.html#t:ExecResult" title="GHC">ExecResult</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:ExecOptions">ExecOptions</a> = <a href="#v:ExecOptions">ExecOptions</a> {<ul class="subs"><li><a href="#v:execSingleStep">execSingleStep</a> :: <a href="GHC.html#t:SingleStep" title="GHC">SingleStep</a></li><li><a href="#v:execSourceFile">execSourceFile</a> :: <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li><a href="#v:execLineNumber">execLineNumber</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li><a href="#v:execWrap">execWrap</a> :: <a href="GHC.html#t:ForeignHValue" title="GHC">ForeignHValue</a> -&gt; <a href="GHC-Runtime-Interpreter.html#t:EvalExpr" title="GHC.Runtime.Interpreter">EvalExpr</a> <a href="GHC.html#t:ForeignHValue" title="GHC">ForeignHValue</a></li></ul>}</li><li class="src short"><a href="#v:execOptions">execOptions</a> :: <a href="GHC.html#t:ExecOptions" title="GHC">ExecOptions</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:ExecResult">ExecResult</a><ul class="subs"><li>= <a href="#v:ExecComplete">ExecComplete</a> { <ul class="subs"><li><a href="#v:execResult">execResult</a> :: <a href="GHC-Prelude.html#t:Either" title="GHC.Prelude">Either</a> <a href="../base/Control-Exception.html#t:SomeException" title="Control.Exception">SomeException</a> [<a href="GHC.html#t:Name" title="GHC">Name</a>]</li><li><a href="#v:execAllocation">execAllocation</a> :: <a href="../base/Data-Word.html#t:Word64" title="Data.Word">Word64</a></li></ul> }</li><li>| <a href="#v:ExecBreak">ExecBreak</a> { <ul class="subs"><li><a href="#v:breakNames">breakNames</a> :: [<a href="GHC.html#t:Name" title="GHC">Name</a>]</li><li><a href="#v:breakInfo">breakInfo</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:BreakInfo" title="GHC">BreakInfo</a></li></ul> }</li></ul></li><li class="src short"><a href="#v:resumeExec">resumeExec</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; (<a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a>) -&gt; <a href="GHC.html#t:SingleStep" title="GHC">SingleStep</a> -&gt; m <a href="GHC.html#t:ExecResult" title="GHC">ExecResult</a></li><li class="src short"><a href="#v:runDecls">runDecls</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; m [<a href="GHC.html#t:Name" title="GHC">Name</a>]</li><li class="src short"><a href="#v:runDeclsWithLocation">runDeclsWithLocation</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; m [<a href="GHC.html#t:Name" title="GHC">Name</a>]</li><li class="src short"><a href="#v:runParsedDecls">runParsedDecls</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; [<a href="GHC-Hs-Decls.html#t:LHsDecl" title="GHC.Hs.Decls">LHsDecl</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a>] -&gt; m [<a href="GHC.html#t:Name" title="GHC">Name</a>]</li><li class="src short"><a href="#v:parseImportDecl">parseImportDecl</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; m (<a href="GHC-Hs-ImpExp.html#t:ImportDecl" title="GHC.Hs.ImpExp">ImportDecl</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a>)</li><li class="src short"><a href="#v:setContext">setContext</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; [<a href="GHC.html#t:InteractiveImport" title="GHC">InteractiveImport</a>] -&gt; m ()</li><li class="src short"><a href="#v:getContext">getContext</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m [<a href="GHC.html#t:InteractiveImport" title="GHC">InteractiveImport</a>]</li><li class="src short"><a href="#v:setGHCiMonad">setGHCiMonad</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; m ()</li><li class="src short"><a href="#v:getGHCiMonad">getGHCiMonad</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m <a href="GHC.html#t:Name" title="GHC">Name</a></li><li class="src short"><a href="#v:getBindings">getBindings</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m [<a href="GHC.html#t:TyThing" title="GHC">TyThing</a>]</li><li class="src short"><a href="#v:getInsts">getInsts</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m ([<a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a>], [<a href="GHC.html#t:FamInst" title="GHC">FamInst</a>])</li><li class="src short"><a href="#v:getPrintUnqual">getPrintUnqual</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m <a href="GHC.html#t:PrintUnqualified" title="GHC">PrintUnqualified</a></li><li class="src short"><a href="#v:findModule">findModule</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Data-FastString.html#t:FastString" title="GHC.Data.FastString">FastString</a> -&gt; m <a href="GHC.html#t:Module" title="GHC">Module</a></li><li class="src short"><a href="#v:lookupModule">lookupModule</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Data-FastString.html#t:FastString" title="GHC.Data.FastString">FastString</a> -&gt; m <a href="GHC.html#t:Module" title="GHC">Module</a></li><li class="src short"><a href="#v:isModuleTrusted">isModuleTrusted</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:Module" title="GHC">Module</a> -&gt; m <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:moduleTrustReqs">moduleTrustReqs</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:Module" title="GHC">Module</a> -&gt; m (<a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a>, <a href="../containers/Data-Set.html#t:Set" title="Data.Set">Set</a> <a href="GHC-Unit-Types.html#t:UnitId" title="GHC.Unit.Types">UnitId</a>)</li><li class="src short"><a href="#v:getNamesInScope">getNamesInScope</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m [<a href="GHC.html#t:Name" title="GHC">Name</a>]</li><li class="src short"><a href="#v:getRdrNamesInScope">getRdrNamesInScope</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m [<a href="GHC.html#t:RdrName" title="GHC">RdrName</a>]</li><li class="src short"><a href="#v:getGRE">getGRE</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m <a href="GHC-Types-Name-Reader.html#t:GlobalRdrEnv" title="GHC.Types.Name.Reader">GlobalRdrEnv</a></li><li class="src short"><a href="#v:moduleIsInterpreted">moduleIsInterpreted</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:Module" title="GHC">Module</a> -&gt; m <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:getInfo">getInfo</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; m (<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (<a href="GHC.html#t:TyThing" title="GHC">TyThing</a>, <a href="GHC-Types-Basic.html#t:Fixity" title="GHC.Types.Basic">Fixity</a>, [<a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a>], [<a href="GHC.html#t:FamInst" title="GHC">FamInst</a>], <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a>))</li><li class="src short"><a href="#v:showModule">showModule</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a> -&gt; m <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li class="src short"><a href="#v:moduleIsBootOrNotObjectLinkable">moduleIsBootOrNotObjectLinkable</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a> -&gt; m <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:getNameToInstancesIndex">getNameToInstancesIndex</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; [<a href="GHC.html#t:Module" title="GHC">Module</a>] -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> [<a href="GHC.html#t:Module" title="GHC">Module</a>] -&gt; m (<a href="GHC-Utils-Error.html#t:Messages" title="GHC.Utils.Error">Messages</a>, <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (<a href="GHC-Types-Name-Env.html#t:NameEnv" title="GHC.Types.Name.Env">NameEnv</a> ([<a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a>], [<a href="GHC.html#t:FamInst" title="GHC">FamInst</a>])))</li><li class="src short"><a href="#v:exprType">exprType</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:TcRnExprMode" title="GHC">TcRnExprMode</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; m <a href="GHC.html#t:Type" title="GHC">Type</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:TcRnExprMode">TcRnExprMode</a><ul class="subs"><li>= <a href="#v:TM_Inst">TM_Inst</a></li><li>| <a href="#v:TM_NoInst">TM_NoInst</a></li><li>| <a href="#v:TM_Default">TM_Default</a></li></ul></li><li class="src short"><a href="#v:typeKind">typeKind</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; m (<a href="GHC.html#t:Type" title="GHC">Type</a>, <a href="GHC.html#t:Kind" title="GHC">Kind</a>)</li><li class="src short"><a href="#v:parseName">parseName</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; m [<a href="GHC.html#t:Name" title="GHC">Name</a>]</li><li class="src short"><a href="#v:lookupName">lookupName</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; m (<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:TyThing" title="GHC">TyThing</a>)</li><li class="src short"><span class="keyword">data</span> <a href="#t:HValue">HValue</a></li><li class="src short"><a href="#v:parseExpr">parseExpr</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; m (<a href="GHC-Hs-Expr.html#t:LHsExpr" title="GHC.Hs.Expr">LHsExpr</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a>)</li><li class="src short"><a href="#v:compileParsedExpr">compileParsedExpr</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Hs-Expr.html#t:LHsExpr" title="GHC.Hs.Expr">LHsExpr</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a> -&gt; m <a href="GHC.html#t:HValue" title="GHC">HValue</a></li><li class="src short"><a href="#v:compileExpr">compileExpr</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; m <a href="GHC.html#t:HValue" title="GHC">HValue</a></li><li class="src short"><a href="#v:dynCompileExpr">dynCompileExpr</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; m <a href="../base/Data-Dynamic.html#t:Dynamic" title="Data.Dynamic">Dynamic</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:ForeignHValue">ForeignHValue</a> = <a href="../ghci/GHCi-RemoteTypes.html#t:ForeignRef" title="GHCi.RemoteTypes">ForeignRef</a> <a href="GHC.html#t:HValue" title="GHC">HValue</a></li><li class="src short"><a href="#v:compileExprRemote">compileExprRemote</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; m <a href="GHC.html#t:ForeignHValue" title="GHC">ForeignHValue</a></li><li class="src short"><a href="#v:compileParsedExprRemote">compileParsedExprRemote</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Hs-Expr.html#t:LHsExpr" title="GHC.Hs.Expr">LHsExpr</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a> -&gt; m <a href="GHC.html#t:ForeignHValue" title="GHC">ForeignHValue</a></li><li class="src short"><a href="#v:getDocs">getDocs</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; m (<a href="GHC-Prelude.html#t:Either" title="GHC.Prelude">Either</a> <a href="GHC.html#t:GetDocsFailure" title="GHC">GetDocsFailure</a> (<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Hs-Doc.html#t:HsDocString" title="GHC.Hs.Doc">HsDocString</a>, <a href="../containers/Data-Map-Strict.html#t:Map" title="Data.Map.Strict">Map</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> <a href="GHC-Hs-Doc.html#t:HsDocString" title="GHC.Hs.Doc">HsDocString</a>))</li><li class="src short"><span class="keyword">data</span> <a href="#t:GetDocsFailure">GetDocsFailure</a><ul class="subs"><li>= <a href="#v:NameHasNoModule">NameHasNoModule</a> <a href="GHC.html#t:Name" title="GHC">Name</a></li><li>| <a href="#v:NoDocsInIface">NoDocsInIface</a> <a href="GHC.html#t:Module" title="GHC">Module</a> <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li>| <a href="#v:InteractiveName">InteractiveName</a></li></ul></li><li class="src short"><a href="#v:runTcInteractive">runTcInteractive</a> :: <a href="GHC.html#t:HscEnv" title="GHC">HscEnv</a> -&gt; <a href="GHC-Tc-Types.html#t:TcRn" title="GHC.Tc.Types">TcRn</a> a -&gt; <a href="GHC-Prelude.html#t:IO" title="GHC.Prelude">IO</a> (<a href="GHC-Utils-Error.html#t:Messages" title="GHC.Utils.Error">Messages</a>, <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> a)</li><li class="src short"><a href="#v:isStmt">isStmt</a> :: <a href="GHC-Parser-Lexer.html#t:ParserFlags" title="GHC.Parser.Lexer">ParserFlags</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:hasImport">hasImport</a> :: <a href="GHC-Parser-Lexer.html#t:ParserFlags" title="GHC.Parser.Lexer">ParserFlags</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:isImport">isImport</a> :: <a href="GHC-Parser-Lexer.html#t:ParserFlags" title="GHC.Parser.Lexer">ParserFlags</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:isDecl">isDecl</a> :: <a href="GHC-Parser-Lexer.html#t:ParserFlags" title="GHC.Parser.Lexer">ParserFlags</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:SingleStep">SingleStep</a><ul class="subs"><li>= <a href="#v:RunToCompletion">RunToCompletion</a></li><li>| <a href="#v:SingleStep">SingleStep</a></li><li>| <a href="#v:RunAndLogSteps">RunAndLogSteps</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:Resume">Resume</a> = <a href="#v:Resume">Resume</a> {<ul class="subs"><li><a href="#v:resumeStmt">resumeStmt</a> :: <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li><a href="#v:resumeContext">resumeContext</a> :: <a href="../ghci/GHCi-RemoteTypes.html#t:ForeignRef" title="GHCi.RemoteTypes">ForeignRef</a> (<a href="../ghci/GHCi-Message.html#t:ResumeContext" title="GHCi.Message">ResumeContext</a> [<a href="../ghci/GHCi-RemoteTypes.html#t:HValueRef" title="GHCi.RemoteTypes">HValueRef</a>])</li><li><a href="#v:resumeBindings">resumeBindings</a> :: ([<a href="GHC.html#t:TyThing" title="GHC">TyThing</a>], <a href="GHC-Types-Name-Reader.html#t:GlobalRdrEnv" title="GHC.Types.Name.Reader">GlobalRdrEnv</a>)</li><li><a href="#v:resumeFinalIds">resumeFinalIds</a> :: [<a href="GHC.html#t:Id" title="GHC">Id</a>]</li><li><a href="#v:resumeApStack">resumeApStack</a> :: <a href="GHC.html#t:ForeignHValue" title="GHC">ForeignHValue</a></li><li><a href="#v:resumeBreakInfo">resumeBreakInfo</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:BreakInfo" title="GHC">BreakInfo</a></li><li><a href="#v:resumeSpan">resumeSpan</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></li><li><a href="#v:resumeDecl">resumeDecl</a> :: <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li><a href="#v:resumeCCS">resumeCCS</a> :: <a href="../ghci/GHCi-RemoteTypes.html#t:RemotePtr" title="GHCi.RemoteTypes">RemotePtr</a> <a href="../base/GHC-Stack-CCS.html#t:CostCentreStack" title="GHC.Stack.CCS">CostCentreStack</a></li><li><a href="#v:resumeHistory">resumeHistory</a> :: [<a href="GHC.html#t:History" title="GHC">History</a>]</li><li><a href="#v:resumeHistoryIx">resumeHistoryIx</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:History">History</a></li><li class="src short"><a href="#v:getHistorySpan">getHistorySpan</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:History" title="GHC">History</a> -&gt; m <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></li><li class="src short"><a href="#v:getHistoryModule">getHistoryModule</a> :: <a href="GHC.html#t:History" title="GHC">History</a> -&gt; <a href="GHC.html#t:Module" title="GHC">Module</a></li><li class="src short"><a href="#v:abandon">abandon</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:abandonAll">abandonAll</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:getResumeContext">getResumeContext</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m [<a href="GHC.html#t:Resume" title="GHC">Resume</a>]</li><li class="src short"><a href="#v:obtainTermFromId">obtainTermFromId</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> -&gt; <a href="GHC.html#t:Id" title="GHC">Id</a> -&gt; m <a href="GHC-Runtime-Heap-Inspect.html#t:Term" title="GHC.Runtime.Heap.Inspect">Term</a></li><li class="src short"><a href="#v:obtainTermFromVal">obtainTermFromVal</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> -&gt; <a href="GHC.html#t:Type" title="GHC">Type</a> -&gt; a -&gt; m <a href="GHC-Runtime-Heap-Inspect.html#t:Term" title="GHC.Runtime.Heap.Inspect">Term</a></li><li class="src short"><a href="#v:reconstructType">reconstructType</a> :: <a href="GHC.html#t:HscEnv" title="GHC">HscEnv</a> -&gt; <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; <a href="GHC.html#t:Id" title="GHC">Id</a> -&gt; <a href="GHC-Prelude.html#t:IO" title="GHC.Prelude">IO</a> (<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:Type" title="GHC">Type</a>)</li><li class="src short"><a href="#v:modInfoModBreaks">modInfoModBreaks</a> :: <a href="GHC.html#t:ModuleInfo" title="GHC">ModuleInfo</a> -&gt; <a href="GHC.html#t:ModBreaks" title="GHC">ModBreaks</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:ModBreaks">ModBreaks</a> = <a href="#v:ModBreaks">ModBreaks</a> {<ul class="subs"><li><a href="#v:modBreaks_flags">modBreaks_flags</a> :: <a href="../ghci/GHCi-RemoteTypes.html#t:ForeignRef" title="GHCi.RemoteTypes">ForeignRef</a> <a href="../ghci/GHCi-BreakArray.html#t:BreakArray" title="GHCi.BreakArray">BreakArray</a></li><li><a href="#v:modBreaks_locs">modBreaks_locs</a> :: !(<a href="../array/Data-Array.html#t:Array" title="Data.Array">Array</a> <a href="GHC.html#t:BreakIndex" title="GHC">BreakIndex</a> <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a>)</li><li><a href="#v:modBreaks_vars">modBreaks_vars</a> :: !(<a href="../array/Data-Array.html#t:Array" title="Data.Array">Array</a> <a href="GHC.html#t:BreakIndex" title="GHC">BreakIndex</a> [<a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a>])</li><li><a href="#v:modBreaks_decls">modBreaks_decls</a> :: !(<a href="../array/Data-Array.html#t:Array" title="Data.Array">Array</a> <a href="GHC.html#t:BreakIndex" title="GHC">BreakIndex</a> [<a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>])</li><li><a href="#v:modBreaks_ccs">modBreaks_ccs</a> :: !(<a href="../array/Data-Array.html#t:Array" title="Data.Array">Array</a> <a href="GHC.html#t:BreakIndex" title="GHC">BreakIndex</a> (<a href="../ghci/GHCi-RemoteTypes.html#t:RemotePtr" title="GHCi.RemoteTypes">RemotePtr</a> <a href="../base/GHC-Stack-CCS.html#t:CostCentre" title="GHC.Stack.CCS">CostCentre</a>))</li><li><a href="#v:modBreaks_breakInfo">modBreaks_breakInfo</a> :: <a href="../containers/Data-IntMap-Strict-Internal.html#t:IntMap" title="Data.IntMap.Strict.Internal">IntMap</a> <a href="GHC-ByteCode-Types.html#t:CgBreakInfo" title="GHC.ByteCode.Types">CgBreakInfo</a></li></ul>}</li><li class="src short"><span class="keyword">type</span> <a href="#t:BreakIndex">BreakIndex</a> = <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:BreakInfo">BreakInfo</a></li><li class="src short"><a href="#v:back">back</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; m ([<a href="GHC.html#t:Name" title="GHC">Name</a>], <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a>, <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a>, <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>)</li><li class="src short"><a href="#v:forward">forward</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; m ([<a href="GHC.html#t:Name" title="GHC">Name</a>], <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a>, <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a>, <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>)</li><li class="src short"><span class="keyword">type</span> <a href="#t:Unit">Unit</a> = <a href="GHC-Unit-Types.html#t:GenUnit" title="GHC.Unit.Types">GenUnit</a> <a href="GHC-Unit-Types.html#t:UnitId" title="GHC.Unit.Types">UnitId</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:Module">Module</a> = <a href="GHC-Unit-Types.html#t:GenModule" title="GHC.Unit.Types">GenModule</a> <a href="GHC.html#t:Unit" title="GHC">Unit</a></li><li class="src short"><a href="#v:mkModule">mkModule</a> :: u -&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; <a href="GHC-Unit-Types.html#t:GenModule" title="GHC.Unit.Types">GenModule</a> u</li><li class="src short"><a href="#v:pprModule">pprModule</a> :: <a href="GHC.html#t:Module" title="GHC">Module</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a></li><li class="src short"><a href="#v:moduleName">moduleName</a> :: <a href="GHC-Unit-Types.html#t:GenModule" title="GHC.Unit.Types">GenModule</a> unit -&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a></li><li class="src short"><a href="#v:moduleUnit">moduleUnit</a> :: <a href="GHC-Unit-Types.html#t:GenModule" title="GHC.Unit.Types">GenModule</a> unit -&gt; unit</li><li class="src short"><span class="keyword">data</span> <a href="#t:ModuleName">ModuleName</a></li><li class="src short"><a href="#v:mkModuleName">mkModuleName</a> :: <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a></li><li class="src short"><a href="#v:moduleNameString">moduleNameString</a> :: <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Name">Name</a></li><li class="src short"><a href="#v:isExternalName">isExternalName</a> :: <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:nameModule">nameModule</a> :: <a href="GHC-Utils-Misc.html#t:HasDebugCallStack" title="GHC.Utils.Misc">HasDebugCallStack</a> =&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC.html#t:Module" title="GHC">Module</a></li><li class="src short"><a href="#v:pprParenSymName">pprParenSymName</a> :: <a href="GHC.html#t:NamedThing" title="GHC">NamedThing</a> a =&gt; a -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a></li><li class="src short"><a href="#v:nameSrcSpan">nameSrcSpan</a> :: <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></li><li class="src short"><span class="keyword">class</span> <a href="#t:NamedThing">NamedThing</a> a <span class="keyword">where</span><ul class="subs"><li><a href="#v:getOccName">getOccName</a> :: a -&gt; <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a></li><li><a href="#v:getName">getName</a> :: a -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:RdrName">RdrName</a><ul class="subs"><li>= <a href="#v:Unqual">Unqual</a> <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a></li><li>| <a href="#v:Qual">Qual</a> <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a></li></ul></li><li class="src short"><span class="keyword">type</span> <a href="#t:Id">Id</a> = <a href="GHC-Types-Var.html#t:Var" title="GHC.Types.Var">Var</a></li><li class="src short"><a href="#v:idType">idType</a> :: <a href="GHC.html#t:Id" title="GHC">Id</a> -&gt; <a href="GHC.html#t:Kind" title="GHC">Kind</a></li><li class="src short"><a href="#v:isImplicitId">isImplicitId</a> :: <a href="GHC.html#t:Id" title="GHC">Id</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:isDeadBinder">isDeadBinder</a> :: <a href="GHC.html#t:Id" title="GHC">Id</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:isExportedId">isExportedId</a> :: <a href="GHC-Types-Var.html#t:Var" title="GHC.Types.Var">Var</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:isLocalId">isLocalId</a> :: <a href="GHC-Types-Var.html#t:Var" title="GHC.Types.Var">Var</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:isGlobalId">isGlobalId</a> :: <a href="GHC-Types-Var.html#t:Var" title="GHC.Types.Var">Var</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:isRecordSelector">isRecordSelector</a> :: <a href="GHC.html#t:Id" title="GHC">Id</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:isPrimOpId">isPrimOpId</a> :: <a href="GHC.html#t:Id" title="GHC">Id</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:isFCallId">isFCallId</a> :: <a href="GHC.html#t:Id" title="GHC">Id</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:isClassOpId_maybe">isClassOpId_maybe</a> :: <a href="GHC.html#t:Id" title="GHC">Id</a> -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:Class" title="GHC">Class</a></li><li class="src short"><a href="#v:isDataConWorkId">isDataConWorkId</a> :: <a href="GHC.html#t:Id" title="GHC">Id</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:idDataCon">idDataCon</a> :: <a href="GHC.html#t:Id" title="GHC">Id</a> -&gt; <a href="GHC.html#t:DataCon" title="GHC">DataCon</a></li><li class="src short"><a href="#v:isDeadEndId">isDeadEndId</a> :: <a href="GHC-Types-Var.html#t:Var" title="GHC.Types.Var">Var</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:isDictonaryId">isDictonaryId</a> :: <a href="GHC.html#t:Id" title="GHC">Id</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:recordSelectorTyCon">recordSelectorTyCon</a> :: <a href="GHC.html#t:Id" title="GHC">Id</a> -&gt; <a href="GHC-Types-Id-Info.html#t:RecSelParent" title="GHC.Types.Id.Info">RecSelParent</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:TyCon">TyCon</a></li><li class="src short"><a href="#v:tyConTyVars">tyConTyVars</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; [<a href="GHC.html#t:TyVar" title="GHC">TyVar</a>]</li><li class="src short"><a href="#v:tyConDataCons">tyConDataCons</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; [<a href="GHC.html#t:DataCon" title="GHC">DataCon</a>]</li><li class="src short"><a href="#v:tyConArity">tyConArity</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC-Types-Basic.html#t:Arity" title="GHC.Types.Basic">Arity</a></li><li class="src short"><a href="#v:isClassTyCon">isClassTyCon</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:isTypeSynonymTyCon">isTypeSynonymTyCon</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:isTypeFamilyTyCon">isTypeFamilyTyCon</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:isNewTyCon">isNewTyCon</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:isPrimTyCon">isPrimTyCon</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:isFunTyCon">isFunTyCon</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:isFamilyTyCon">isFamilyTyCon</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:isOpenFamilyTyCon">isOpenFamilyTyCon</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:isOpenTypeFamilyTyCon">isOpenTypeFamilyTyCon</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:tyConClass_maybe">tyConClass_maybe</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:Class" title="GHC">Class</a></li><li class="src short"><a href="#v:synTyConRhs_maybe">synTyConRhs_maybe</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:Type" title="GHC">Type</a></li><li class="src short"><a href="#v:synTyConDefn_maybe">synTyConDefn_maybe</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> ([<a href="GHC.html#t:TyVar" title="GHC">TyVar</a>], <a href="GHC.html#t:Type" title="GHC">Type</a>)</li><li class="src short"><a href="#v:tyConKind">tyConKind</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC.html#t:Kind" title="GHC">Kind</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:TyVar">TyVar</a> = <a href="GHC-Types-Var.html#t:Var" title="GHC.Types.Var">Var</a></li><li class="src short"><a href="#v:alphaTyVars">alphaTyVars</a> :: [<a href="GHC.html#t:TyVar" title="GHC">TyVar</a>]</li><li class="src short"><span class="keyword">data</span> <a href="#t:DataCon">DataCon</a></li><li class="src short"><a href="#v:dataConType">dataConType</a> :: <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; <a href="GHC.html#t:Type" title="GHC">Type</a></li><li class="src short"><a href="#v:dataConTyCon">dataConTyCon</a> :: <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; <a href="GHC.html#t:TyCon" title="GHC">TyCon</a></li><li class="src short"><a href="#v:dataConFieldLabels">dataConFieldLabels</a> :: <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; [<a href="GHC-Types-FieldLabel.html#t:FieldLabel" title="GHC.Types.FieldLabel">FieldLabel</a>]</li><li class="src short"><a href="#v:dataConIsInfix">dataConIsInfix</a> :: <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:isVanillaDataCon">isVanillaDataCon</a> :: <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:dataConWrapperType">dataConWrapperType</a> :: <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; <a href="GHC.html#t:Type" title="GHC">Type</a></li><li class="src short"><a href="#v:dataConSrcBangs">dataConSrcBangs</a> :: <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; [<a href="GHC-Core-DataCon.html#t:HsSrcBang" title="GHC.Core.DataCon">HsSrcBang</a>]</li><li class="src short"><span class="keyword">data</span> <a href="#t:StrictnessMark">StrictnessMark</a><ul class="subs"><li>= <a href="#v:MarkedStrict">MarkedStrict</a></li><li>| <a href="#v:NotMarkedStrict">NotMarkedStrict</a></li></ul></li><li class="src short"><a href="#v:isMarkedStrict">isMarkedStrict</a> :: <a href="GHC.html#t:StrictnessMark" title="GHC">StrictnessMark</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Class">Class</a></li><li class="src short"><a href="#v:classMethods">classMethods</a> :: <a href="GHC.html#t:Class" title="GHC">Class</a> -&gt; [<a href="GHC.html#t:Id" title="GHC">Id</a>]</li><li class="src short"><a href="#v:classSCTheta">classSCTheta</a> :: <a href="GHC.html#t:Class" title="GHC">Class</a> -&gt; [<a href="GHC.html#t:PredType" title="GHC">PredType</a>]</li><li class="src short"><a href="#v:classTvsFds">classTvsFds</a> :: <a href="GHC.html#t:Class" title="GHC">Class</a> -&gt; ([<a href="GHC.html#t:TyVar" title="GHC">TyVar</a>], [<a href="GHC-Core-Class.html#t:FunDep" title="GHC.Core.Class">FunDep</a> <a href="GHC.html#t:TyVar" title="GHC">TyVar</a>])</li><li class="src short"><a href="#v:classATs">classATs</a> :: <a href="GHC.html#t:Class" title="GHC">Class</a> -&gt; [<a href="GHC.html#t:TyCon" title="GHC">TyCon</a>]</li><li class="src short"><a href="#v:pprFundeps">pprFundeps</a> :: <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> a =&gt; [<a href="GHC-Core-Class.html#t:FunDep" title="GHC.Core.Class">FunDep</a> a] -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:ClsInst">ClsInst</a></li><li class="src short"><a href="#v:instanceDFunId">instanceDFunId</a> :: <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a> -&gt; <a href="GHC-Types-Var.html#t:DFunId" title="GHC.Types.Var">DFunId</a></li><li class="src short"><a href="#v:pprInstance">pprInstance</a> :: <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a></li><li class="src short"><a href="#v:pprInstanceHdr">pprInstanceHdr</a> :: <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a></li><li class="src short"><a href="#v:pprFamInst">pprFamInst</a> :: <a href="GHC.html#t:FamInst" title="GHC">FamInst</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:FamInst">FamInst</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Type">Type</a></li><li class="src short"><a href="#v:splitForAllTys">splitForAllTys</a> :: <a href="GHC.html#t:Type" title="GHC">Type</a> -&gt; ([<a href="GHC-Types-Var.html#t:TyCoVar" title="GHC.Types.Var">TyCoVar</a>], <a href="GHC.html#t:Type" title="GHC">Type</a>)</li><li class="src short"><a href="#v:funResultTy">funResultTy</a> :: <a href="GHC.html#t:Type" title="GHC">Type</a> -&gt; <a href="GHC.html#t:Type" title="GHC">Type</a></li><li class="src short"><a href="#v:pprParendType">pprParendType</a> :: <a href="GHC.html#t:Type" title="GHC">Type</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a></li><li class="src short"><a href="#v:pprTypeApp">pprTypeApp</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; [<a href="GHC.html#t:Type" title="GHC">Type</a>] -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:Kind">Kind</a> = <a href="GHC.html#t:Type" title="GHC">Type</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:PredType">PredType</a> = <a href="GHC.html#t:Type" title="GHC">Type</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:ThetaType">ThetaType</a> = [<a href="GHC.html#t:PredType" title="GHC">PredType</a>]</li><li class="src short"><a href="#v:pprForAll">pprForAll</a> :: [<a href="GHC-Types-Var.html#t:TyCoVarBinder" title="GHC.Types.Var">TyCoVarBinder</a>] -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a></li><li class="src short"><a href="#v:pprThetaArrowTy">pprThetaArrowTy</a> :: <a href="GHC.html#t:ThetaType" title="GHC">ThetaType</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a></li><li class="src short"><a href="#v:parseInstanceHead">parseInstanceHead</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; m <a href="GHC.html#t:Type" title="GHC">Type</a></li><li class="src short"><a href="#v:getInstancesForType">getInstancesForType</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:Type" title="GHC">Type</a> -&gt; m [<a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a>]</li><li class="src short"><span class="keyword">data</span> <a href="#t:TyThing">TyThing</a><ul class="subs"><li>= <a href="#v:AnId">AnId</a> <a href="GHC.html#t:Id" title="GHC">Id</a></li><li>| <a href="#v:AConLike">AConLike</a> <a href="GHC-Core-ConLike.html#t:ConLike" title="GHC.Core.ConLike">ConLike</a></li><li>| <a href="#v:ATyCon">ATyCon</a> <a href="GHC.html#t:TyCon" title="GHC">TyCon</a></li><li>| <a href="#v:ACoAxiom">ACoAxiom</a> (<a href="GHC-Core-Coercion-Axiom.html#t:CoAxiom" title="GHC.Core.Coercion.Axiom">CoAxiom</a> <a href="GHC-Core-Coercion-Axiom.html#t:Branched" title="GHC.Core.Coercion.Axiom">Branched</a>)</li></ul></li><li class="src short">module <a href="GHC-Hs.html">GHC.Hs</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:FixityDirection">FixityDirection</a><ul class="subs"><li>= <a href="#v:InfixL">InfixL</a></li><li>| <a href="#v:InfixR">InfixR</a></li><li>| <a href="#v:InfixN">InfixN</a></li></ul></li><li class="src short"><a href="#v:defaultFixity">defaultFixity</a> :: <a href="GHC-Types-Basic.html#t:Fixity" title="GHC.Types.Basic">Fixity</a></li><li class="src short"><a href="#v:maxPrecedence">maxPrecedence</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li class="src short"><a href="#v:negateFixity">negateFixity</a> :: <a href="GHC-Types-Basic.html#t:Fixity" title="GHC.Types.Basic">Fixity</a></li><li class="src short"><a href="#v:compareFixity">compareFixity</a> :: <a href="GHC-Types-Basic.html#t:Fixity" title="GHC.Types.Basic">Fixity</a> -&gt; <a href="GHC-Types-Basic.html#t:Fixity" title="GHC.Types.Basic">Fixity</a> -&gt; (<a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a>, <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a>)</li><li class="src short"><span class="keyword">data</span> <a href="#t:LexicalFixity">LexicalFixity</a><ul class="subs"><li>= <a href="#v:Prefix">Prefix</a></li><li>| <a href="#v:Infix">Infix</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:SrcLoc">SrcLoc</a><ul class="subs"><li>= <a href="#v:RealSrcLoc">RealSrcLoc</a> !<a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a> !(<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Types-SrcLoc.html#t:BufPos" title="GHC.Types.SrcLoc">BufPos</a>)</li><li>| <a href="#v:UnhelpfulLoc">UnhelpfulLoc</a> <a href="GHC-Data-FastString.html#t:FastString" title="GHC.Data.FastString">FastString</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:RealSrcLoc">RealSrcLoc</a></li><li class="src short"><a href="#v:mkSrcLoc">mkSrcLoc</a> :: <a href="GHC-Data-FastString.html#t:FastString" title="GHC.Data.FastString">FastString</a> -&gt; <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; <a href="GHC.html#t:SrcLoc" title="GHC">SrcLoc</a></li><li class="src short"><a href="#v:noSrcLoc">noSrcLoc</a> :: <a href="GHC.html#t:SrcLoc" title="GHC">SrcLoc</a></li><li class="src short"><a href="#v:srcLocFile">srcLocFile</a> :: <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a> -&gt; <a href="GHC-Data-FastString.html#t:FastString" title="GHC.Data.FastString">FastString</a></li><li class="src short"><a href="#v:srcLocLine">srcLocLine</a> :: <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a> -&gt; <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li class="src short"><a href="#v:srcLocCol">srcLocCol</a> :: <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a> -&gt; <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:SrcSpan">SrcSpan</a><ul class="subs"><li>= <a href="#v:RealSrcSpan">RealSrcSpan</a> !<a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> !(<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Types-SrcLoc.html#t:BufSpan" title="GHC.Types.SrcLoc">BufSpan</a>)</li><li>| <a href="#v:UnhelpfulSpan">UnhelpfulSpan</a> !<a href="GHC-Types-SrcLoc.html#t:UnhelpfulSpanReason" title="GHC.Types.SrcLoc">UnhelpfulSpanReason</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:RealSrcSpan">RealSrcSpan</a></li><li class="src short"><a href="#v:mkSrcSpan">mkSrcSpan</a> :: <a href="GHC.html#t:SrcLoc" title="GHC">SrcLoc</a> -&gt; <a href="GHC.html#t:SrcLoc" title="GHC">SrcLoc</a> -&gt; <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></li><li class="src short"><a href="#v:srcLocSpan">srcLocSpan</a> :: <a href="GHC.html#t:SrcLoc" title="GHC">SrcLoc</a> -&gt; <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></li><li class="src short"><a href="#v:isGoodSrcSpan">isGoodSrcSpan</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:noSrcSpan">noSrcSpan</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></li><li class="src short"><a href="#v:srcSpanStart">srcSpanStart</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC.html#t:SrcLoc" title="GHC">SrcLoc</a></li><li class="src short"><a href="#v:srcSpanEnd">srcSpanEnd</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC.html#t:SrcLoc" title="GHC">SrcLoc</a></li><li class="src short"><a href="#v:srcSpanFile">srcSpanFile</a> :: <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC-Data-FastString.html#t:FastString" title="GHC.Data.FastString">FastString</a></li><li class="src short"><a href="#v:srcSpanStartLine">srcSpanStartLine</a> :: <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li class="src short"><a href="#v:srcSpanEndLine">srcSpanEndLine</a> :: <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li class="src short"><a href="#v:srcSpanStartCol">srcSpanStartCol</a> :: <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li class="src short"><a href="#v:srcSpanEndCol">srcSpanEndCol</a> :: <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:GenLocated">GenLocated</a> l e = <a href="#v:L">L</a> l e</li><li class="src short"><span class="keyword">type</span> <a href="#t:Located">Located</a> = <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:RealLocated">RealLocated</a> = <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a></li><li class="src short"><a href="#v:noLoc">noLoc</a> :: e -&gt; <a href="GHC.html#t:Located" title="GHC">Located</a> e</li><li class="src short"><a href="#v:mkGeneralLocated">mkGeneralLocated</a> :: <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; e -&gt; <a href="GHC.html#t:Located" title="GHC">Located</a> e</li><li class="src short"><a href="#v:getLoc">getLoc</a> :: <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; l</li><li class="src short"><a href="#v:unLoc">unLoc</a> :: <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; e</li><li class="src short"><a href="#v:getRealSrcSpan">getRealSrcSpan</a> :: <a href="GHC.html#t:RealLocated" title="GHC">RealLocated</a> a -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a></li><li class="src short"><a href="#v:unRealSrcSpan">unRealSrcSpan</a> :: <a href="GHC.html#t:RealLocated" title="GHC">RealLocated</a> a -&gt; a</li><li class="src short"><a href="#v:eqLocated">eqLocated</a> :: <a href="GHC-Prelude.html#t:Eq" title="GHC.Prelude">Eq</a> a =&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l a -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l a -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:cmpLocated">cmpLocated</a> :: <a href="GHC-Prelude.html#t:Ord" title="GHC.Prelude">Ord</a> a =&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l a -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l a -&gt; <a href="GHC-Prelude.html#t:Ordering" title="GHC.Prelude">Ordering</a></li><li class="src short"><a href="#v:combineLocs">combineLocs</a> :: <a href="GHC.html#t:Located" title="GHC">Located</a> a -&gt; <a href="GHC.html#t:Located" title="GHC">Located</a> b -&gt; <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></li><li class="src short"><a href="#v:addCLoc">addCLoc</a> :: <a href="GHC.html#t:Located" title="GHC">Located</a> a -&gt; <a href="GHC.html#t:Located" title="GHC">Located</a> b -&gt; c -&gt; <a href="GHC.html#t:Located" title="GHC">Located</a> c</li><li class="src short"><a href="#v:leftmost_smallest">leftmost_smallest</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:Ordering" title="GHC.Prelude">Ordering</a></li><li class="src short"><a href="#v:leftmost_largest">leftmost_largest</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:Ordering" title="GHC.Prelude">Ordering</a></li><li class="src short"><a href="#v:rightmost_smallest">rightmost_smallest</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:Ordering" title="GHC.Prelude">Ordering</a></li><li class="src short"><a href="#v:spans">spans</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; (<a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a>, <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a>) -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:isSubspanOf">isSubspanOf</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:GhcException">GhcException</a><ul class="subs"><li>= <a href="#v:Signal">Signal</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li>| <a href="#v:UsageError">UsageError</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li>| <a href="#v:CmdLineError">CmdLineError</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li>| <a href="#v:Panic">Panic</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li>| <a href="#v:PprPanic">PprPanic</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a></li><li>| <a href="#v:Sorry">Sorry</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li>| <a href="#v:PprSorry">PprSorry</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a></li><li>| <a href="#v:InstallationError">InstallationError</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li>| <a href="#v:ProgramError">ProgramError</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li>| <a href="#v:PprProgramError">PprProgramError</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a></li></ul></li><li class="src short"><a href="#v:showGhcException">showGhcException</a> :: <a href="GHC.html#t:GhcException" title="GHC">GhcException</a> -&gt; <a href="GHC-Prelude.html#t:ShowS" title="GHC.Prelude">ShowS</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Token">Token</a></li><li class="src short"><a href="#v:getTokenStream">getTokenStream</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:Module" title="GHC">Module</a> -&gt; m [<a href="GHC.html#t:Located" title="GHC">Located</a> <a href="GHC.html#t:Token" title="GHC">Token</a>]</li><li class="src short"><a href="#v:getRichTokenStream">getRichTokenStream</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:Module" title="GHC">Module</a> -&gt; m [(<a href="GHC.html#t:Located" title="GHC">Located</a> <a href="GHC.html#t:Token" title="GHC">Token</a>, <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>)]</li><li class="src short"><a href="#v:showRichTokenStream">showRichTokenStream</a> :: [(<a href="GHC.html#t:Located" title="GHC">Located</a> <a href="GHC.html#t:Token" title="GHC">Token</a>, <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>)] -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li class="src short"><a href="#v:addSourceToTokens">addSourceToTokens</a> :: <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a> -&gt; <a href="GHC-Data-StringBuffer.html#t:StringBuffer" title="GHC.Data.StringBuffer">StringBuffer</a> -&gt; [<a href="GHC.html#t:Located" title="GHC">Located</a> <a href="GHC.html#t:Token" title="GHC">Token</a>] -&gt; [(<a href="GHC.html#t:Located" title="GHC">Located</a> <a href="GHC.html#t:Token" title="GHC">Token</a>, <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>)]</li><li class="src short"><a href="#v:parser">parser</a> :: <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; <a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a> -&gt; <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a> -&gt; (<a href="GHC-Utils-Error.html#t:WarningMessages" title="GHC.Utils.Error">WarningMessages</a>, <a href="GHC-Prelude.html#t:Either" title="GHC.Prelude">Either</a> <a href="GHC-Utils-Error.html#t:ErrorMessages" title="GHC.Utils.Error">ErrorMessages</a> (<a href="GHC.html#t:Located" title="GHC">Located</a> <a href="GHC-Hs.html#t:HsModule" title="GHC.Hs">HsModule</a>))</li><li class="src short"><span class="keyword">data</span> <a href="#t:ApiAnns">ApiAnns</a> = <a href="#v:ApiAnns">ApiAnns</a> {<ul class="subs"><li><a href="#v:apiAnnItems">apiAnnItems</a> :: <a href="../containers/Data-Map-Strict.html#t:Map" title="Data.Map.Strict">Map</a> <a href="GHC.html#t:ApiAnnKey" title="GHC">ApiAnnKey</a> [<a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a>]</li><li><a href="#v:apiAnnEofPos">apiAnnEofPos</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a></li><li><a href="#v:apiAnnComments">apiAnnComments</a> :: <a href="../containers/Data-Map-Strict.html#t:Map" title="Data.Map.Strict">Map</a> <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> [<a href="GHC.html#t:RealLocated" title="GHC">RealLocated</a> <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a>]</li><li><a href="#v:apiAnnRogueComments">apiAnnRogueComments</a> :: [<a href="GHC.html#t:RealLocated" title="GHC">RealLocated</a> <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a>]</li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:AnnKeywordId">AnnKeywordId</a><ul class="subs"><li>= <a href="#v:AnnAnyclass">AnnAnyclass</a></li><li>| <a href="#v:AnnAs">AnnAs</a></li><li>| <a href="#v:AnnAt">AnnAt</a></li><li>| <a href="#v:AnnBang">AnnBang</a></li><li>| <a href="#v:AnnBackquote">AnnBackquote</a></li><li>| <a href="#v:AnnBy">AnnBy</a></li><li>| <a href="#v:AnnCase">AnnCase</a></li><li>| <a href="#v:AnnClass">AnnClass</a></li><li>| <a href="#v:AnnClose">AnnClose</a></li><li>| <a href="#v:AnnCloseB">AnnCloseB</a></li><li>| <a href="#v:AnnCloseBU">AnnCloseBU</a></li><li>| <a href="#v:AnnCloseC">AnnCloseC</a></li><li>| <a href="#v:AnnCloseQ">AnnCloseQ</a></li><li>| <a href="#v:AnnCloseQU">AnnCloseQU</a></li><li>| <a href="#v:AnnCloseP">AnnCloseP</a></li><li>| <a href="#v:AnnCloseS">AnnCloseS</a></li><li>| <a href="#v:AnnColon">AnnColon</a></li><li>| <a href="#v:AnnComma">AnnComma</a></li><li>| <a href="#v:AnnCommaTuple">AnnCommaTuple</a></li><li>| <a href="#v:AnnDarrow">AnnDarrow</a></li><li>| <a href="#v:AnnDarrowU">AnnDarrowU</a></li><li>| <a href="#v:AnnData">AnnData</a></li><li>| <a href="#v:AnnDcolon">AnnDcolon</a></li><li>| <a href="#v:AnnDcolonU">AnnDcolonU</a></li><li>| <a href="#v:AnnDefault">AnnDefault</a></li><li>| <a href="#v:AnnDeriving">AnnDeriving</a></li><li>| <a href="#v:AnnDo">AnnDo</a></li><li>| <a href="#v:AnnDot">AnnDot</a></li><li>| <a href="#v:AnnDotdot">AnnDotdot</a></li><li>| <a href="#v:AnnElse">AnnElse</a></li><li>| <a href="#v:AnnEqual">AnnEqual</a></li><li>| <a href="#v:AnnExport">AnnExport</a></li><li>| <a href="#v:AnnFamily">AnnFamily</a></li><li>| <a href="#v:AnnForall">AnnForall</a></li><li>| <a href="#v:AnnForallU">AnnForallU</a></li><li>| <a href="#v:AnnForeign">AnnForeign</a></li><li>| <a href="#v:AnnFunId">AnnFunId</a></li><li>| <a href="#v:AnnGroup">AnnGroup</a></li><li>| <a href="#v:AnnHeader">AnnHeader</a></li><li>| <a href="#v:AnnHiding">AnnHiding</a></li><li>| <a href="#v:AnnIf">AnnIf</a></li><li>| <a href="#v:AnnImport">AnnImport</a></li><li>| <a href="#v:AnnIn">AnnIn</a></li><li>| <a href="#v:AnnInfix">AnnInfix</a></li><li>| <a href="#v:AnnInstance">AnnInstance</a></li><li>| <a href="#v:AnnLam">AnnLam</a></li><li>| <a href="#v:AnnLarrow">AnnLarrow</a></li><li>| <a href="#v:AnnLarrowU">AnnLarrowU</a></li><li>| <a href="#v:AnnLet">AnnLet</a></li><li>| <a href="#v:AnnLollyU">AnnLollyU</a></li><li>| <a href="#v:AnnMdo">AnnMdo</a></li><li>| <a href="#v:AnnMinus">AnnMinus</a></li><li>| <a href="#v:AnnModule">AnnModule</a></li><li>| <a href="#v:AnnPercentOne">AnnPercentOne</a></li><li>| <a href="#v:AnnNewtype">AnnNewtype</a></li><li>| <a href="#v:AnnName">AnnName</a></li><li>| <a href="#v:AnnOf">AnnOf</a></li><li>| <a href="#v:AnnOpen">AnnOpen</a></li><li>| <a href="#v:AnnOpenB">AnnOpenB</a></li><li>| <a href="#v:AnnOpenBU">AnnOpenBU</a></li><li>| <a href="#v:AnnOpenC">AnnOpenC</a></li><li>| <a href="#v:AnnOpenE">AnnOpenE</a></li><li>| <a href="#v:AnnOpenEQ">AnnOpenEQ</a></li><li>| <a href="#v:AnnOpenEQU">AnnOpenEQU</a></li><li>| <a href="#v:AnnOpenP">AnnOpenP</a></li><li>| <a href="#v:AnnOpenS">AnnOpenS</a></li><li>| <a href="#v:AnnDollar">AnnDollar</a></li><li>| <a href="#v:AnnDollarDollar">AnnDollarDollar</a></li><li>| <a href="#v:AnnPackageName">AnnPackageName</a></li><li>| <a href="#v:AnnPattern">AnnPattern</a></li><li>| <a href="#v:AnnPercent">AnnPercent</a></li><li>| <a href="#v:AnnProc">AnnProc</a></li><li>| <a href="#v:AnnQualified">AnnQualified</a></li><li>| <a href="#v:AnnRarrow">AnnRarrow</a></li><li>| <a href="#v:AnnRarrowU">AnnRarrowU</a></li><li>| <a href="#v:AnnRec">AnnRec</a></li><li>| <a href="#v:AnnRole">AnnRole</a></li><li>| <a href="#v:AnnSafe">AnnSafe</a></li><li>| <a href="#v:AnnSemi">AnnSemi</a></li><li>| <a href="#v:AnnSimpleQuote">AnnSimpleQuote</a></li><li>| <a href="#v:AnnSignature">AnnSignature</a></li><li>| <a href="#v:AnnStatic">AnnStatic</a></li><li>| <a href="#v:AnnStock">AnnStock</a></li><li>| <a href="#v:AnnThen">AnnThen</a></li><li>| <a href="#v:AnnThTyQuote">AnnThTyQuote</a></li><li>| <a href="#v:AnnTilde">AnnTilde</a></li><li>| <a href="#v:AnnType">AnnType</a></li><li>| <a href="#v:AnnUnit">AnnUnit</a></li><li>| <a href="#v:AnnUsing">AnnUsing</a></li><li>| <a href="#v:AnnVal">AnnVal</a></li><li>| <a href="#v:AnnValStr">AnnValStr</a></li><li>| <a href="#v:AnnVbar">AnnVbar</a></li><li>| <a href="#v:AnnVia">AnnVia</a></li><li>| <a href="#v:AnnWhere">AnnWhere</a></li><li>| <a href="#v:Annlarrowtail">Annlarrowtail</a></li><li>| <a href="#v:AnnlarrowtailU">AnnlarrowtailU</a></li><li>| <a href="#v:Annrarrowtail">Annrarrowtail</a></li><li>| <a href="#v:AnnrarrowtailU">AnnrarrowtailU</a></li><li>| <a href="#v:AnnLarrowtail">AnnLarrowtail</a></li><li>| <a href="#v:AnnLarrowtailU">AnnLarrowtailU</a></li><li>| <a href="#v:AnnRarrowtail">AnnRarrowtail</a></li><li>| <a href="#v:AnnRarrowtailU">AnnRarrowtailU</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:AnnotationComment">AnnotationComment</a><ul class="subs"><li>= <a href="#v:AnnDocCommentNext">AnnDocCommentNext</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li>| <a href="#v:AnnDocCommentPrev">AnnDocCommentPrev</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li>| <a href="#v:AnnDocCommentNamed">AnnDocCommentNamed</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li>| <a href="#v:AnnDocSection">AnnDocSection</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li>| <a href="#v:AnnDocOptions">AnnDocOptions</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li>| <a href="#v:AnnLineComment">AnnLineComment</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li><li>| <a href="#v:AnnBlockComment">AnnBlockComment</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></li></ul></li><li class="src short"><span class="keyword">type</span> <a href="#t:ApiAnnKey">ApiAnnKey</a> = (<a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a>, <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a>)</li><li class="src short"><a href="#v:getAnnotation">getAnnotation</a> :: <a href="GHC.html#t:ApiAnns" title="GHC">ApiAnns</a> -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; [<a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a>]</li><li class="src short"><a href="#v:getAndRemoveAnnotation">getAndRemoveAnnotation</a> :: <a href="GHC.html#t:ApiAnns" title="GHC">ApiAnns</a> -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; ([<a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a>], <a href="GHC.html#t:ApiAnns" title="GHC">ApiAnns</a>)</li><li class="src short"><a href="#v:getAnnotationComments">getAnnotationComments</a> :: <a href="GHC.html#t:ApiAnns" title="GHC">ApiAnns</a> -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; [<a href="GHC.html#t:RealLocated" title="GHC">RealLocated</a> <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a>]</li><li class="src short"><a href="#v:getAndRemoveAnnotationComments">getAndRemoveAnnotationComments</a> :: <a href="GHC.html#t:ApiAnns" title="GHC">ApiAnns</a> -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; ([<a href="GHC.html#t:RealLocated" title="GHC">RealLocated</a> <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a>], <a href="GHC.html#t:ApiAnns" title="GHC">ApiAnns</a>)</li><li class="src short"><a href="#v:unicodeAnn">unicodeAnn</a> :: <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a></li><li class="src short"><a href="#v:cyclicModuleErr">cyclicModuleErr</a> :: [<a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a>] -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a></li></ul></details></div><div id="interface"><a href="#g:1" id="g:1"><h1>Initialisation</h1></a><div class="top"><p class="src"><a id="v:defaultErrorHandler" class="def">defaultErrorHandler</a> :: <a href="GHC-Utils-Exception.html#t:ExceptionMonad" title="GHC.Utils.Exception">ExceptionMonad</a> m =&gt; <a href="GHC-Driver-Session.html#t:FatalMessager" title="GHC.Driver.Session">FatalMessager</a> -&gt; <a href="GHC-Driver-Session.html#t:FlushOut" title="GHC.Driver.Session">FlushOut</a> -&gt; m a -&gt; m a <a href="src/GHC.html#defaultErrorHandler" class="link">Source</a> <a href="#v:defaultErrorHandler" class="selflink">#</a></p><div class="doc"><p>Install some default exception handlers and run the inner computation.
 Unless you want to handle exceptions yourself, you should wrap this around
 the top level of your program.  The default handlers output the error
 message(s) to stderr and exit cleanly.</p></div></div><div class="top"><p class="src"><a id="v:defaultCleanupHandler" class="def">defaultCleanupHandler</a> :: <a href="GHC-Utils-Exception.html#t:ExceptionMonad" title="GHC.Utils.Exception">ExceptionMonad</a> m =&gt; <a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a> -&gt; m a -&gt; m a <a href="src/GHC.html#defaultCleanupHandler" class="link">Source</a> <a href="#v:defaultCleanupHandler" class="selflink">#</a></p><div class="doc"><div class="warning"><p>Deprecated: Cleanup is now done by runGhc/runGhcT</p></div><p>This function is no longer necessary, cleanup is now done by
 runGhc/runGhcT.</p></div></div><div class="top"><p class="src"><a id="v:prettyPrintGhcErrors" class="def">prettyPrintGhcErrors</a> :: <a href="GHC-Utils-Exception.html#t:ExceptionMonad" title="GHC.Utils.Exception">ExceptionMonad</a> m =&gt; <a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a> -&gt; m a -&gt; m a <a href="src/GHC.Utils.Error.html#prettyPrintGhcErrors" class="link">Source</a> <a href="#v:prettyPrintGhcErrors" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:withSignalHandlers" class="def">withSignalHandlers</a> :: <a href="GHC-Utils-Exception.html#t:ExceptionMonad" title="GHC.Utils.Exception">ExceptionMonad</a> m =&gt; m a -&gt; m a <a href="src/GHC.Utils.Panic.html#withSignalHandlers" class="link">Source</a> <a href="#v:withSignalHandlers" class="selflink">#</a></p><div class="doc"><p>Temporarily install standard signal handlers for catching ^C, which just
 throw an exception in the current thread.</p></div></div><div class="top"><p class="src"><a id="v:withCleanupSession" class="def">withCleanupSession</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m a -&gt; m a <a href="src/GHC.html#withCleanupSession" class="link">Source</a> <a href="#v:withCleanupSession" class="selflink">#</a></p></div><a href="#g:2" id="g:2"><h1>GHC Monad</h1></a><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Ghc" class="def">Ghc</a> a <a href="src/GHC.Driver.Monad.html#Ghc" class="link">Source</a> <a href="#t:Ghc" class="selflink">#</a></p><div class="doc"><p>A minimal implementation of a <code><a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a></code>.  If you need a custom monad,
 e.g., to maintain additional state consider wrapping this monad or using
 <code><a href="GHC.html#t:GhcT" title="GHC">GhcT</a></code>.</p></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:Ghc">Instances</h4><details id="i:Ghc" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Ghc:MonadFix:1"></span> <a href="GHC-Utils-Monad.html#t:MonadFix" title="GHC.Utils.Monad">MonadFix</a> <a href="GHC.html#t:Ghc" title="GHC">Ghc</a></span> <a href="src/GHC.Driver.Monad.html#line-115" class="link">Source</a> <a href="#t:Ghc" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:Ghc:MonadFix:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Monad.html">GHC.Driver.Monad</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mfix">mfix</a> :: (a -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> a) -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> a <a href="../base/src/Control.Monad.Fix.html#mfix" class="link">Source</a> <a href="#v:mfix" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Ghc:MonadIO:2"></span> <a href="GHC-Utils-Monad.html#t:MonadIO" title="GHC.Utils.Monad">MonadIO</a> <a href="GHC.html#t:Ghc" title="GHC">Ghc</a></span> <a href="src/GHC.Driver.Monad.html#line-112" class="link">Source</a> <a href="#t:Ghc" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:Ghc:MonadIO:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Monad.html">GHC.Driver.Monad</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:liftIO">liftIO</a> :: <a href="GHC-Prelude.html#t:IO" title="GHC.Prelude">IO</a> a -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> a <a href="../base/src/Control.Monad.IO.Class.html#liftIO" class="link">Source</a> <a href="#v:liftIO" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Ghc:Applicative:3"></span> <a href="GHC-Prelude.html#t:Applicative" title="GHC.Prelude">Applicative</a> <a href="GHC.html#t:Ghc" title="GHC">Ghc</a></span> <a href="src/GHC.Driver.Monad.html#line-105" class="link">Source</a> <a href="#t:Ghc" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:Ghc:Applicative:3"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Monad.html">GHC.Driver.Monad</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:pure">pure</a> :: a -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> a <a href="../base/src/GHC.Base.html#pure" class="link">Source</a> <a href="#v:pure" class="selflink">#</a></p><p class="src"><a href="#v:-60--42--62-">(&lt;*&gt;)</a> :: <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> (a -&gt; b) -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> a -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> b <a href="../base/src/GHC.Base.html#%3C%2A%3E" class="link">Source</a> <a href="#v:-60--42--62-" class="selflink">#</a></p><p class="src"><a href="#v:liftA2">liftA2</a> :: (a -&gt; b -&gt; c) -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> a -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> b -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> c <a href="../base/src/GHC.Base.html#liftA2" class="link">Source</a> <a href="#v:liftA2" class="selflink">#</a></p><p class="src"><a href="#v:-42--62-">(*&gt;)</a> :: <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> a -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> b -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> b <a href="../base/src/GHC.Base.html#%2A%3E" class="link">Source</a> <a href="#v:-42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-60--42-">(&lt;*)</a> :: <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> a -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> b -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> a <a href="../base/src/GHC.Base.html#%3C%2A" class="link">Source</a> <a href="#v:-60--42-" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Ghc:Functor:4"></span> <a href="GHC-Prelude.html#t:Functor" title="GHC.Prelude">Functor</a> <a href="GHC.html#t:Ghc" title="GHC">Ghc</a></span> <a href="src/GHC.Driver.Monad.html#line-96" class="link">Source</a> <a href="#t:Ghc" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:Ghc:Functor:4"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Monad.html">GHC.Driver.Monad</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -&gt; b) -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> a -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> b <a href="../base/src/GHC.Base.html#fmap" class="link">Source</a> <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(&lt;$)</a> :: a -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> b -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> a <a href="../base/src/GHC.Base.html#%3C%24" class="link">Source</a> <a href="#v:-60--36-" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Ghc:Monad:5"></span> <a href="GHC-Prelude.html#t:Monad" title="GHC.Prelude">Monad</a> <a href="GHC.html#t:Ghc" title="GHC">Ghc</a></span> <a href="src/GHC.Driver.Monad.html#line-109" class="link">Source</a> <a href="#t:Ghc" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:Ghc:Monad:5"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Monad.html">GHC.Driver.Monad</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-62--62--61-">(&gt;&gt;=)</a> :: <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> a -&gt; (a -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> b) -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> b <a href="../base/src/GHC.Base.html#%3E%3E%3D" class="link">Source</a> <a href="#v:-62--62--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62--62-">(&gt;&gt;)</a> :: <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> a -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> b -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> b <a href="../base/src/GHC.Base.html#%3E%3E" class="link">Source</a> <a href="#v:-62--62-" class="selflink">#</a></p><p class="src"><a href="#v:return">return</a> :: a -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> a <a href="../base/src/GHC.Base.html#return" class="link">Source</a> <a href="#v:return" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Ghc:MonadCatch:6"></span> <a href="../exceptions/Control-Monad-Catch.html#t:MonadCatch" title="Control.Monad.Catch">MonadCatch</a> <a href="GHC.html#t:Ghc" title="GHC">Ghc</a></span> <a href="src/GHC.Driver.Monad.html#line-97" class="link">Source</a> <a href="#t:Ghc" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:Ghc:MonadCatch:6"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Monad.html">GHC.Driver.Monad</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:catch">catch</a> :: <a href="GHC-Utils-Panic.html#t:Exception" title="GHC.Utils.Panic">Exception</a> e =&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> a -&gt; (e -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> a) -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> a <a href="../exceptions/src/Control.Monad.Catch.html#catch" class="link">Source</a> <a href="#v:catch" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Ghc:MonadMask:7"></span> <a href="../exceptions/Control-Monad-Catch.html#t:MonadMask" title="Control.Monad.Catch">MonadMask</a> <a href="GHC.html#t:Ghc" title="GHC">Ghc</a></span> <a href="src/GHC.Driver.Monad.html#line-97" class="link">Source</a> <a href="#t:Ghc" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:Ghc:MonadMask:7"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Monad.html">GHC.Driver.Monad</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mask">mask</a> :: ((<span class="keyword">forall</span> a. <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> a -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> a) -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> b) -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> b <a href="../exceptions/src/Control.Monad.Catch.html#mask" class="link">Source</a> <a href="#v:mask" class="selflink">#</a></p><p class="src"><a href="#v:uninterruptibleMask">uninterruptibleMask</a> :: ((<span class="keyword">forall</span> a. <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> a -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> a) -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> b) -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> b <a href="../exceptions/src/Control.Monad.Catch.html#uninterruptibleMask" class="link">Source</a> <a href="#v:uninterruptibleMask" class="selflink">#</a></p><p class="src"><a href="#v:generalBracket">generalBracket</a> :: <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> a -&gt; (a -&gt; <a href="../exceptions/Control-Monad-Catch.html#t:ExitCase" title="Control.Monad.Catch">ExitCase</a> b -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> c) -&gt; (a -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> b) -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> (b, c) <a href="../exceptions/src/Control.Monad.Catch.html#generalBracket" class="link">Source</a> <a href="#v:generalBracket" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Ghc:MonadThrow:8"></span> <a href="../exceptions/Control-Monad-Catch.html#t:MonadThrow" title="Control.Monad.Catch">MonadThrow</a> <a href="GHC.html#t:Ghc" title="GHC">Ghc</a></span> <a href="src/GHC.Driver.Monad.html#line-97" class="link">Source</a> <a href="#t:Ghc" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:Ghc:MonadThrow:8"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Monad.html">GHC.Driver.Monad</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:throwM">throwM</a> :: <a href="GHC-Utils-Panic.html#t:Exception" title="GHC.Utils.Panic">Exception</a> e =&gt; e -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> a <a href="../exceptions/src/Control.Monad.Catch.html#throwM" class="link">Source</a> <a href="#v:throwM" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Ghc:GhcMonad:9"></span> <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> <a href="GHC.html#t:Ghc" title="GHC">Ghc</a></span> <a href="src/GHC.Driver.Monad.html#line-121" class="link">Source</a> <a href="#t:Ghc" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:Ghc:GhcMonad:9"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Monad.html">GHC.Driver.Monad</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getSession">getSession</a> :: <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> <a href="GHC.html#t:HscEnv" title="GHC">HscEnv</a> <a href="src/GHC.Driver.Monad.html#getSession" class="link">Source</a> <a href="#v:getSession" class="selflink">#</a></p><p class="src"><a href="#v:setSession">setSession</a> :: <a href="GHC.html#t:HscEnv" title="GHC">HscEnv</a> -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> () <a href="src/GHC.Driver.Monad.html#setSession" class="link">Source</a> <a href="#v:setSession" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Ghc:HasDynFlags:10"></span> <a href="GHC-Driver-Session.html#t:HasDynFlags" title="GHC.Driver.Session">HasDynFlags</a> <a href="GHC.html#t:Ghc" title="GHC">Ghc</a></span> <a href="src/GHC.Driver.Monad.html#line-118" class="link">Source</a> <a href="#t:Ghc" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:Ghc:HasDynFlags:10"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Monad.html">GHC.Driver.Monad</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getDynFlags">getDynFlags</a> :: <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> <a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a> <a href="src/GHC.Driver.Session.html#getDynFlags" class="link">Source</a> <a href="#v:getDynFlags" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:GhcT" class="def">GhcT</a> m a <a href="src/GHC.Driver.Monad.html#GhcT" class="link">Source</a> <a href="#t:GhcT" class="selflink">#</a></p><div class="doc"><p>A monad transformer to add GHC specific features to another monad.</p><p>Note that the wrapped monad must support IO and handling of exceptions.</p></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:GhcT">Instances</h4><details id="i:GhcT" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:GhcT:MonadIO:1"></span> <a href="GHC-Utils-Monad.html#t:MonadIO" title="GHC.Utils.Monad">MonadIO</a> m =&gt; <a href="GHC-Utils-Monad.html#t:MonadIO" title="GHC.Utils.Monad">MonadIO</a> (<a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m)</span> <a href="src/GHC.Driver.Monad.html#line-165" class="link">Source</a> <a href="#t:GhcT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:GhcT:MonadIO:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Monad.html">GHC.Driver.Monad</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:liftIO">liftIO</a> :: <a href="GHC-Prelude.html#t:IO" title="GHC.Prelude">IO</a> a -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m a <a href="../base/src/Control.Monad.IO.Class.html#liftIO" class="link">Source</a> <a href="#v:liftIO" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:GhcT:Applicative:2"></span> <a href="GHC-Prelude.html#t:Applicative" title="GHC.Prelude">Applicative</a> m =&gt; <a href="GHC-Prelude.html#t:Applicative" title="GHC.Prelude">Applicative</a> (<a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m)</span> <a href="src/GHC.Driver.Monad.html#line-158" class="link">Source</a> <a href="#t:GhcT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:GhcT:Applicative:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Monad.html">GHC.Driver.Monad</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:pure">pure</a> :: a -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m a <a href="../base/src/GHC.Base.html#pure" class="link">Source</a> <a href="#v:pure" class="selflink">#</a></p><p class="src"><a href="#v:-60--42--62-">(&lt;*&gt;)</a> :: <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m (a -&gt; b) -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m a -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m b <a href="../base/src/GHC.Base.html#%3C%2A%3E" class="link">Source</a> <a href="#v:-60--42--62-" class="selflink">#</a></p><p class="src"><a href="#v:liftA2">liftA2</a> :: (a -&gt; b -&gt; c) -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m a -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m b -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m c <a href="../base/src/GHC.Base.html#liftA2" class="link">Source</a> <a href="#v:liftA2" class="selflink">#</a></p><p class="src"><a href="#v:-42--62-">(*&gt;)</a> :: <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m a -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m b -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m b <a href="../base/src/GHC.Base.html#%2A%3E" class="link">Source</a> <a href="#v:-42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-60--42-">(&lt;*)</a> :: <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m a -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m b -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m a <a href="../base/src/GHC.Base.html#%3C%2A" class="link">Source</a> <a href="#v:-60--42-" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:GhcT:Functor:3"></span> <a href="GHC-Prelude.html#t:Functor" title="GHC.Prelude">Functor</a> m =&gt; <a href="GHC-Prelude.html#t:Functor" title="GHC.Prelude">Functor</a> (<a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m)</span> <a href="src/GHC.Driver.Monad.html#line-152" class="link">Source</a> <a href="#t:GhcT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:GhcT:Functor:3"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Monad.html">GHC.Driver.Monad</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -&gt; b) -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m a -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m b <a href="../base/src/GHC.Base.html#fmap" class="link">Source</a> <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(&lt;$)</a> :: a -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m b -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m a <a href="../base/src/GHC.Base.html#%3C%24" class="link">Source</a> <a href="#v:-60--36-" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:GhcT:Monad:4"></span> <a href="GHC-Prelude.html#t:Monad" title="GHC.Prelude">Monad</a> m =&gt; <a href="GHC-Prelude.html#t:Monad" title="GHC.Prelude">Monad</a> (<a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m)</span> <a href="src/GHC.Driver.Monad.html#line-162" class="link">Source</a> <a href="#t:GhcT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:GhcT:Monad:4"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Monad.html">GHC.Driver.Monad</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-62--62--61-">(&gt;&gt;=)</a> :: <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m a -&gt; (a -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m b) -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m b <a href="../base/src/GHC.Base.html#%3E%3E%3D" class="link">Source</a> <a href="#v:-62--62--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62--62-">(&gt;&gt;)</a> :: <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m a -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m b -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m b <a href="../base/src/GHC.Base.html#%3E%3E" class="link">Source</a> <a href="#v:-62--62-" class="selflink">#</a></p><p class="src"><a href="#v:return">return</a> :: a -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m a <a href="../base/src/GHC.Base.html#return" class="link">Source</a> <a href="#v:return" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:GhcT:MonadCatch:5"></span> <a href="../exceptions/Control-Monad-Catch.html#t:MonadCatch" title="Control.Monad.Catch">MonadCatch</a> m =&gt; <a href="../exceptions/Control-Monad-Catch.html#t:MonadCatch" title="Control.Monad.Catch">MonadCatch</a> (<a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m)</span> <a href="src/GHC.Driver.Monad.html#line-153" class="link">Source</a> <a href="#t:GhcT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:GhcT:MonadCatch:5"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Monad.html">GHC.Driver.Monad</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:catch">catch</a> :: <a href="GHC-Utils-Panic.html#t:Exception" title="GHC.Utils.Panic">Exception</a> e =&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m a -&gt; (e -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m a) -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m a <a href="../exceptions/src/Control.Monad.Catch.html#catch" class="link">Source</a> <a href="#v:catch" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:GhcT:MonadMask:6"></span> <a href="../exceptions/Control-Monad-Catch.html#t:MonadMask" title="Control.Monad.Catch">MonadMask</a> m =&gt; <a href="../exceptions/Control-Monad-Catch.html#t:MonadMask" title="Control.Monad.Catch">MonadMask</a> (<a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m)</span> <a href="src/GHC.Driver.Monad.html#line-153" class="link">Source</a> <a href="#t:GhcT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:GhcT:MonadMask:6"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Monad.html">GHC.Driver.Monad</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mask">mask</a> :: ((<span class="keyword">forall</span> a. <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m a -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m a) -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m b) -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m b <a href="../exceptions/src/Control.Monad.Catch.html#mask" class="link">Source</a> <a href="#v:mask" class="selflink">#</a></p><p class="src"><a href="#v:uninterruptibleMask">uninterruptibleMask</a> :: ((<span class="keyword">forall</span> a. <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m a -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m a) -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m b) -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m b <a href="../exceptions/src/Control.Monad.Catch.html#uninterruptibleMask" class="link">Source</a> <a href="#v:uninterruptibleMask" class="selflink">#</a></p><p class="src"><a href="#v:generalBracket">generalBracket</a> :: <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m a -&gt; (a -&gt; <a href="../exceptions/Control-Monad-Catch.html#t:ExitCase" title="Control.Monad.Catch">ExitCase</a> b -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m c) -&gt; (a -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m b) -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m (b, c) <a href="../exceptions/src/Control.Monad.Catch.html#generalBracket" class="link">Source</a> <a href="#v:generalBracket" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:GhcT:MonadThrow:7"></span> <a href="../exceptions/Control-Monad-Catch.html#t:MonadThrow" title="Control.Monad.Catch">MonadThrow</a> m =&gt; <a href="../exceptions/Control-Monad-Catch.html#t:MonadThrow" title="Control.Monad.Catch">MonadThrow</a> (<a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m)</span> <a href="src/GHC.Driver.Monad.html#line-153" class="link">Source</a> <a href="#t:GhcT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:GhcT:MonadThrow:7"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Monad.html">GHC.Driver.Monad</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:throwM">throwM</a> :: <a href="GHC-Utils-Panic.html#t:Exception" title="GHC.Utils.Panic">Exception</a> e =&gt; e -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m a <a href="../exceptions/src/Control.Monad.Catch.html#throwM" class="link">Source</a> <a href="#v:throwM" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:GhcT:GhcMonad:8"></span> <a href="GHC-Utils-Exception.html#t:ExceptionMonad" title="GHC.Utils.Exception">ExceptionMonad</a> m =&gt; <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> (<a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m)</span> <a href="src/GHC.Driver.Monad.html#line-171" class="link">Source</a> <a href="#t:GhcT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:GhcT:GhcMonad:8"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Monad.html">GHC.Driver.Monad</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getSession">getSession</a> :: <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m <a href="GHC.html#t:HscEnv" title="GHC">HscEnv</a> <a href="src/GHC.Driver.Monad.html#getSession" class="link">Source</a> <a href="#v:getSession" class="selflink">#</a></p><p class="src"><a href="#v:setSession">setSession</a> :: <a href="GHC.html#t:HscEnv" title="GHC">HscEnv</a> -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m () <a href="src/GHC.Driver.Monad.html#setSession" class="link">Source</a> <a href="#v:setSession" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:GhcT:HasDynFlags:9"></span> <a href="GHC-Utils-Monad.html#t:MonadIO" title="GHC.Utils.Monad">MonadIO</a> m =&gt; <a href="GHC-Driver-Session.html#t:HasDynFlags" title="GHC.Driver.Session">HasDynFlags</a> (<a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m)</span> <a href="src/GHC.Driver.Monad.html#line-168" class="link">Source</a> <a href="#t:GhcT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:GhcT:HasDynFlags:9"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Monad.html">GHC.Driver.Monad</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getDynFlags">getDynFlags</a> :: <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m <a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a> <a href="src/GHC.Driver.Session.html#getDynFlags" class="link">Source</a> <a href="#v:getDynFlags" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><span class="keyword">class</span> (<a href="GHC-Prelude.html#t:Functor" title="GHC.Prelude">Functor</a> m, <a href="GHC-Utils-Exception.html#t:ExceptionMonad" title="GHC.Utils.Exception">ExceptionMonad</a> m, <a href="GHC-Driver-Session.html#t:HasDynFlags" title="GHC.Driver.Session">HasDynFlags</a> m) =&gt; <a id="t:GhcMonad" class="def">GhcMonad</a> m <span class="keyword">where</span> <a href="src/GHC.Driver.Monad.html#GhcMonad" class="link">Source</a> <a href="#t:GhcMonad" class="selflink">#</a></p><div class="doc"><p>A monad that has all the features needed by GHC API calls.</p><p>In short, a GHC monad</p><ul><li>allows embedding of IO actions,</li><li>can log warnings,</li><li>allows handling of (extensible) exceptions, and</li><li>maintains a current session.</li></ul><p>If you do not use <code><a href="GHC.html#t:Ghc" title="GHC">Ghc</a></code> or <code><a href="GHC.html#t:GhcT" title="GHC">GhcT</a></code>, make sure to call <code><a href="GHC.html#v:initGhcMonad" title="GHC">initGhcMonad</a></code>
 before any call to the GHC API functions can occur.</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:getSession" class="def">getSession</a> :: m <a href="GHC.html#t:HscEnv" title="GHC">HscEnv</a> <a href="src/GHC.Driver.Monad.html#getSession" class="link">Source</a> <a href="#v:getSession" class="selflink">#</a></p><p class="src"><a id="v:setSession" class="def">setSession</a> :: <a href="GHC.html#t:HscEnv" title="GHC">HscEnv</a> -&gt; m () <a href="src/GHC.Driver.Monad.html#setSession" class="link">Source</a> <a href="#v:setSession" class="selflink">#</a></p></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:GhcMonad">Instances</h4><details id="i:GhcMonad" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:GhcMonad:GhcMonad:1"></span> <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> <a href="GHC.html#t:Ghc" title="GHC">Ghc</a></span> <a href="src/GHC.Driver.Monad.html#line-121" class="link">Source</a> <a href="#t:GhcMonad" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:ic:GhcMonad:GhcMonad:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Monad.html">GHC.Driver.Monad</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getSession">getSession</a> :: <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> <a href="GHC.html#t:HscEnv" title="GHC">HscEnv</a> <a href="src/GHC.Driver.Monad.html#getSession" class="link">Source</a> <a href="#v:getSession" class="selflink">#</a></p><p class="src"><a href="#v:setSession">setSession</a> :: <a href="GHC.html#t:HscEnv" title="GHC">HscEnv</a> -&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> () <a href="src/GHC.Driver.Monad.html#setSession" class="link">Source</a> <a href="#v:setSession" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:GhcMonad:GhcMonad:2"></span> <a href="GHC-Utils-Exception.html#t:ExceptionMonad" title="GHC.Utils.Exception">ExceptionMonad</a> m =&gt; <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> (<a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m)</span> <a href="src/GHC.Driver.Monad.html#line-171" class="link">Source</a> <a href="#t:GhcMonad" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:ic:GhcMonad:GhcMonad:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Monad.html">GHC.Driver.Monad</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getSession">getSession</a> :: <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m <a href="GHC.html#t:HscEnv" title="GHC">HscEnv</a> <a href="src/GHC.Driver.Monad.html#getSession" class="link">Source</a> <a href="#v:getSession" class="selflink">#</a></p><p class="src"><a href="#v:setSession">setSession</a> :: <a href="GHC.html#t:HscEnv" title="GHC">HscEnv</a> -&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m () <a href="src/GHC.Driver.Monad.html#setSession" class="link">Source</a> <a href="#v:setSession" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:HscEnv" class="def">HscEnv</a> <a href="src/GHC.Driver.Types.html#HscEnv" class="link">Source</a> <a href="#t:HscEnv" class="selflink">#</a></p><div class="doc"><p>HscEnv is like <code>Session</code>, except that some of the fields are immutable.
 An HscEnv is used to compile a single module from plain Haskell source
 code (after preprocessing) to either C, assembly or C--. It's also used
 to store the dynamic linker state to allow for multiple linkers in the
 same address space.
 Things like the module graph don't change during a single compilation.</p><p>Historical note: &quot;hsc&quot; used to be the name of the compiler binary,
 when there was a separate driver and compiler.  To compile a single
 module, the driver would invoke hsc on the source code... so nowadays
 we think of hsc as the layer of the compiler that deals with compiling
 a single module.</p></div></div><div class="top"><p class="src"><a id="v:runGhc" class="def">runGhc</a> <a href="src/GHC.html#runGhc" class="link">Source</a> <a href="#v:runGhc" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a></td><td class="doc"><p>See argument to <code><a href="GHC.html#v:initGhcMonad" title="GHC">initGhcMonad</a></code>.</p></td></tr><tr><td class="src">-&gt; <a href="GHC.html#t:Ghc" title="GHC">Ghc</a> a</td><td class="doc"><p>The action to perform.</p></td></tr><tr><td class="src">-&gt; <a href="GHC-Prelude.html#t:IO" title="GHC.Prelude">IO</a> a</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="doc"><p>Run function for the <code><a href="GHC.html#t:Ghc" title="GHC">Ghc</a></code> monad.</p><p>It initialises the GHC session and warnings via <code><a href="GHC.html#v:initGhcMonad" title="GHC">initGhcMonad</a></code>.  Each call
 to this function will create a new session which should not be shared among
 several threads.</p><p>Any errors not handled inside the <code><a href="GHC.html#t:Ghc" title="GHC">Ghc</a></code> action are propagated as IO
 exceptions.</p></div></div><div class="top"><p class="src"><a id="v:runGhcT" class="def">runGhcT</a> <a href="src/GHC.html#runGhcT" class="link">Source</a> <a href="#v:runGhcT" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="GHC-Utils-Exception.html#t:ExceptionMonad" title="GHC.Utils.Exception">ExceptionMonad</a> m</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">=&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a></td><td class="doc"><p>See argument to <code><a href="GHC.html#v:initGhcMonad" title="GHC">initGhcMonad</a></code>.</p></td></tr><tr><td class="src">-&gt; <a href="GHC.html#t:GhcT" title="GHC">GhcT</a> m a</td><td class="doc"><p>The action to perform.</p></td></tr><tr><td class="src">-&gt; m a</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="doc"><p>Run function for <code><a href="GHC.html#t:GhcT" title="GHC">GhcT</a></code> monad transformer.</p><p>It initialises the GHC session and warnings via <code><a href="GHC.html#v:initGhcMonad" title="GHC">initGhcMonad</a></code>.  Each call
 to this function will create a new session which should not be shared among
 several threads.</p></div></div><div class="top"><p class="src"><a id="v:initGhcMonad" class="def">initGhcMonad</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a> -&gt; m () <a href="src/GHC.html#initGhcMonad" class="link">Source</a> <a href="#v:initGhcMonad" class="selflink">#</a></p><div class="doc"><p>Initialise a GHC session.</p><p>If you implement a custom <code><a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a></code> you must call this function in the
 monad run function.  It will initialise the session variable and clear all
 warnings.</p><p>The first argument should point to the directory where GHC's library files
 reside.  More precisely, this should be the output of <code>ghc --print-libdir</code>
 of the version of GHC the module using this API is compiled with.  For
 portability, you should use the <code>ghc-paths</code> package, available at
 <a href="http://hackage.haskell.org/package/ghc-paths">http://hackage.haskell.org/package/ghc-paths</a>.</p></div></div><div class="top"><p class="src"><a id="v:printException" class="def">printException</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Driver-Types.html#t:SourceError" title="GHC.Driver.Types">SourceError</a> -&gt; m () <a href="src/GHC.Driver.Monad.html#printException" class="link">Source</a> <a href="#v:printException" class="selflink">#</a></p><div class="doc"><p>Print the error message and all warnings.  Useful inside exception
   handlers.  Clears warnings after printing.</p></div></div><div class="top"><p class="src"><a id="v:handleSourceError" class="def">handleSourceError</a> <a href="src/GHC.Driver.Types.html#handleSourceError" class="link">Source</a> <a href="#v:handleSourceError" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="../exceptions/Control-Monad-Catch.html#t:MonadCatch" title="Control.Monad.Catch">MonadCatch</a> m</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">=&gt; (<a href="GHC-Driver-Types.html#t:SourceError" title="GHC.Driver.Types">SourceError</a> -&gt; m a)</td><td class="doc"><p>exception handler</p></td></tr><tr><td class="src">-&gt; m a</td><td class="doc"><p>action to perform</p></td></tr><tr><td class="src">-&gt; m a</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="doc"><p>Perform the given action and call the exception handler if the action
 throws a <code><a href="GHC-Driver-Types.html#t:SourceError" title="GHC.Driver.Types">SourceError</a></code>.  See <code><a href="GHC-Driver-Types.html#t:SourceError" title="GHC.Driver.Types">SourceError</a></code> for more information.</p></div></div><div class="top"><p class="src"><a id="v:needsTemplateHaskellOrQQ" class="def">needsTemplateHaskellOrQQ</a> :: <a href="GHC.html#t:ModuleGraph" title="GHC">ModuleGraph</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Driver.Types.html#needsTemplateHaskellOrQQ" class="link">Source</a> <a href="#v:needsTemplateHaskellOrQQ" class="selflink">#</a></p><div class="doc"><p>Determines whether a set of modules requires Template Haskell or
 Quasi Quotes</p><p>Note that if the session's <code><a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a></code> enabled Template Haskell when
 <code>depanal</code> was called, then each module in the returned module graph will
 have Template Haskell enabled whether it is actually needed or not.</p></div></div><a href="#g:3" id="g:3"><h1>Flags and settings</h1></a><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:DynFlags" class="def">DynFlags</a> <a href="src/GHC.Driver.Session.html#DynFlags" class="link">Source</a> <a href="#t:DynFlags" class="selflink">#</a></p><div class="doc"><p>Contains not only a collection of <code><a href="GHC.html#t:GeneralFlag" title="GHC">GeneralFlag</a></code>s but also a plethora of
 information relating to the compilation of a single file or GHC session</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:DynFlags" class="def">DynFlags</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:ghcMode" class="def">ghcMode</a> :: <a href="GHC.html#t:GhcMode" title="GHC">GhcMode</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:ghcLink" class="def">ghcLink</a> :: <a href="GHC.html#t:GhcLink" title="GHC">GhcLink</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:hscTarget" class="def">hscTarget</a> :: <a href="GHC.html#t:HscTarget" title="GHC">HscTarget</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:ghcNameVersion" class="def">ghcNameVersion</a> :: !<a href="GHC-Settings.html#t:GhcNameVersion" title="GHC.Settings">GhcNameVersion</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:fileSettings" class="def">fileSettings</a> :: !<a href="GHC-Settings.html#t:FileSettings" title="GHC.Settings">FileSettings</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:targetPlatform" class="def">targetPlatform</a> :: <a href="GHC-Settings.html#t:Platform" title="GHC.Settings">Platform</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:toolSettings" class="def">toolSettings</a> :: !<a href="GHC-Settings.html#t:ToolSettings" title="GHC.Settings">ToolSettings</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:platformMisc" class="def">platformMisc</a> :: !<a href="GHC-Settings.html#t:PlatformMisc" title="GHC.Settings">PlatformMisc</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:platformConstants" class="def">platformConstants</a> :: <a href="GHC-Settings.html#t:PlatformConstants" title="GHC.Settings">PlatformConstants</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:rawSettings" class="def">rawSettings</a> :: [(<a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>, <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>)]</dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:llvmConfig" class="def">llvmConfig</a> :: <a href="GHC-Driver-Session.html#t:LlvmConfig" title="GHC.Driver.Session">LlvmConfig</a></dfn><div class="doc"><p>N.B. It's important that this field is lazy since we load the LLVM
 configuration lazily. See Note [LLVM Configuration] in <a href="GHC-SysTools.html">GHC.SysTools</a>.</p></div></li><li><dfn class="src"><a id="v:verbosity" class="def">verbosity</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc"><p>Verbosity level: see Note [Verbosity levels]</p></div></li><li><dfn class="src"><a id="v:optLevel" class="def">optLevel</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc"><p>Optimisation level</p></div></li><li><dfn class="src"><a id="v:debugLevel" class="def">debugLevel</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc"><p>How much debug information to produce</p></div></li><li><dfn class="src"><a id="v:simplPhases" class="def">simplPhases</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc"><p>Number of simplifier phases</p></div></li><li><dfn class="src"><a id="v:maxSimplIterations" class="def">maxSimplIterations</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc"><p>Max simplifier iterations</p></div></li><li><dfn class="src"><a id="v:ruleCheck" class="def">ruleCheck</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:inlineCheck" class="def">inlineCheck</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></dfn><div class="doc"><p>A prefix to report inlining decisions about</p></div></li><li><dfn class="src"><a id="v:strictnessBefore" class="def">strictnessBefore</a> :: [<a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a>]</dfn><div class="doc"><p>Additional demand analysis</p></div></li><li><dfn class="src"><a id="v:parMakeCount" class="def">parMakeCount</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc"><p>The number of modules to compile in parallel
   in --make mode, where Nothing ==&gt; compile as
   many in parallel as there are CPUs.</p></div></li><li><dfn class="src"><a id="v:enableTimeStats" class="def">enableTimeStats</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></dfn><div class="doc"><p>Enable RTS timing statistics?</p></div></li><li><dfn class="src"><a id="v:ghcHeapSize" class="def">ghcHeapSize</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc"><p>The heap size to set.</p></div></li><li><dfn class="src"><a id="v:maxRelevantBinds" class="def">maxRelevantBinds</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc"><p>Maximum number of bindings from the type envt
   to show in type error messages</p></div></li><li><dfn class="src"><a id="v:maxValidHoleFits" class="def">maxValidHoleFits</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc"><p>Maximum number of hole fits to show
   in typed hole error messages</p></div></li><li><dfn class="src"><a id="v:maxRefHoleFits" class="def">maxRefHoleFits</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc"><p>Maximum number of refinement hole
   fits to show in typed hole error
   messages</p></div></li><li><dfn class="src"><a id="v:refLevelHoleFits" class="def">refLevelHoleFits</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc"><p>Maximum level of refinement for
   refinement hole fits in typed hole
   error messages</p></div></li><li><dfn class="src"><a id="v:maxUncoveredPatterns" class="def">maxUncoveredPatterns</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc"><p>Maximum number of unmatched patterns to show
   in non-exhaustiveness warnings</p></div></li><li><dfn class="src"><a id="v:maxPmCheckModels" class="def">maxPmCheckModels</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc"><p>Soft limit on the number of models
   the pattern match checker checks
   a pattern against. A safe guard
   against exponential blow-up.</p></div></li><li><dfn class="src"><a id="v:simplTickFactor" class="def">simplTickFactor</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc"><p>Multiplier for simplifier ticks</p></div></li><li><dfn class="src"><a id="v:specConstrThreshold" class="def">specConstrThreshold</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc"><p>Threshold for SpecConstr</p></div></li><li><dfn class="src"><a id="v:specConstrCount" class="def">specConstrCount</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc"><p>Max number of specialisations for any one function</p></div></li><li><dfn class="src"><a id="v:specConstrRecursive" class="def">specConstrRecursive</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc"><p>Max number of specialisations for recursive types
   Not optional; otherwise ForceSpecConstr can diverge.</p></div></li><li><dfn class="src"><a id="v:binBlobThreshold" class="def">binBlobThreshold</a> :: <a href="GHC-Prelude.html#t:Word" title="GHC.Prelude">Word</a></dfn><div class="doc"><p>Binary literals (e.g. strings) whose size is above
   this threshold will be dumped in a binary file
   by the assembler code generator (0 to disable)</p></div></li><li><dfn class="src"><a id="v:liberateCaseThreshold" class="def">liberateCaseThreshold</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc"><p>Threshold for LiberateCase</p></div></li><li><dfn class="src"><a id="v:floatLamArgs" class="def">floatLamArgs</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc"><p>Arg count for lambda floating
   See <code><a href="GHC-Core-Opt-Monad.html#v:FloatOutSwitches" title="GHC.Core.Opt.Monad">FloatOutSwitches</a></code></p></div></li><li><dfn class="src"><a id="v:liftLamsRecArgs" class="def">liftLamsRecArgs</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc"><p>Maximum number of arguments after lambda lifting a
   recursive function.</p></div></li><li><dfn class="src"><a id="v:liftLamsNonRecArgs" class="def">liftLamsNonRecArgs</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc"><p>Maximum number of arguments after lambda lifting a
   non-recursive function.</p></div></li><li><dfn class="src"><a id="v:liftLamsKnown" class="def">liftLamsKnown</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></dfn><div class="doc"><p>Lambda lift even when this turns a known call
   into an unknown call.</p></div></li><li><dfn class="src"><a id="v:cmmProcAlignment" class="def">cmmProcAlignment</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc"><p>Align Cmm functions at this boundary or use default.</p></div></li><li><dfn class="src"><a id="v:historySize" class="def">historySize</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc"><p>Simplification history size</p></div></li><li><dfn class="src"><a id="v:importPaths" class="def">importPaths</a> :: [<a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a>]</dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:mainModIs" class="def">mainModIs</a> :: <a href="GHC.html#t:Module" title="GHC">Module</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:mainFunIs" class="def">mainFunIs</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:reductionDepth" class="def">reductionDepth</a> :: <a href="GHC-Types-Basic.html#t:IntWithInf" title="GHC.Types.Basic">IntWithInf</a></dfn><div class="doc"><p>Typechecker maximum stack depth</p></div></li><li><dfn class="src"><a id="v:solverIterations" class="def">solverIterations</a> :: <a href="GHC-Types-Basic.html#t:IntWithInf" title="GHC.Types.Basic">IntWithInf</a></dfn><div class="doc"><p>Number of iterations in the constraints solver
   Typically only 1 is needed</p></div></li><li><dfn class="src"><a id="v:homeUnitId" class="def">homeUnitId</a> :: <a href="GHC-Unit-Types.html#t:UnitId" title="GHC.Unit.Types">UnitId</a></dfn><div class="doc"><p>Target home unit-id</p></div></li><li><dfn class="src"><a id="v:homeUnitInstanceOfId" class="def">homeUnitInstanceOfId</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Unit-Types.html#t:IndefUnitId" title="GHC.Unit.Types">IndefUnitId</a></dfn><div class="doc"><p>Unit-id to instantiate</p></div></li><li><dfn class="src"><a id="v:homeUnitInstantiations" class="def">homeUnitInstantiations</a> :: [(<a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a>, <a href="GHC.html#t:Module" title="GHC">Module</a>)]</dfn><div class="doc"><p>How to instantiate <code><a href="GHC.html#v:homeUnitInstanceOfId" title="GHC">homeUnitInstanceOfId</a></code> unit</p></div></li><li><dfn class="src"><a id="v:ways" class="def">ways</a> :: <a href="../containers/Data-Set.html#t:Set" title="Data.Set">Set</a> <a href="GHC-Driver-Ways.html#t:Way" title="GHC.Driver.Ways">Way</a></dfn><div class="doc"><p>Way flags from the command line</p></div></li><li><dfn class="src"><a id="v:splitInfo" class="def">splitInfo</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (<a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>, <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a>)</dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:objectDir" class="def">objectDir</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:dylibInstallName" class="def">dylibInstallName</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:hiDir" class="def">hiDir</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:hieDir" class="def">hieDir</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:stubDir" class="def">stubDir</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:dumpDir" class="def">dumpDir</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:objectSuf" class="def">objectSuf</a> :: <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:hcSuf" class="def">hcSuf</a> :: <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:hiSuf" class="def">hiSuf</a> :: <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:hieSuf" class="def">hieSuf</a> :: <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:canGenerateDynamicToo" class="def">canGenerateDynamicToo</a> :: <a href="GHC-Data-IOEnv.html#t:IORef" title="GHC.Data.IOEnv">IORef</a> <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:dynObjectSuf" class="def">dynObjectSuf</a> :: <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:dynHiSuf" class="def">dynHiSuf</a> :: <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:outputFile" class="def">outputFile</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:dynOutputFile" class="def">dynOutputFile</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:outputHi" class="def">outputHi</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:dynLibLoader" class="def">dynLibLoader</a> :: <a href="GHC-Driver-Session.html#t:DynLibLoader" title="GHC.Driver.Session">DynLibLoader</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:dumpPrefix" class="def">dumpPrefix</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a></dfn><div class="doc"><p>This is set by <code><a href="GHC-Driver-Pipeline.html#v:runPipeline" title="GHC.Driver.Pipeline">runPipeline</a></code> based on where
    its output is going.</p></div></li><li><dfn class="src"><a id="v:dumpPrefixForce" class="def">dumpPrefixForce</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a></dfn><div class="doc"><p>Override the <code><a href="GHC.html#v:dumpPrefix" title="GHC">dumpPrefix</a></code> set by <code><a href="GHC-Driver-Pipeline.html#v:runPipeline" title="GHC.Driver.Pipeline">runPipeline</a></code>.
    Set by <code>-ddump-file-prefix</code></p></div></li><li><dfn class="src"><a id="v:ldInputs" class="def">ldInputs</a> :: [<a href="GHC-Utils-CliOption.html#t:Option" title="GHC.Utils.CliOption">Option</a>]</dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:includePaths" class="def">includePaths</a> :: <a href="GHC-Driver-Session.html#t:IncludeSpecs" title="GHC.Driver.Session">IncludeSpecs</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:libraryPaths" class="def">libraryPaths</a> :: [<a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>]</dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:frameworkPaths" class="def">frameworkPaths</a> :: [<a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>]</dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:cmdlineFrameworks" class="def">cmdlineFrameworks</a> :: [<a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>]</dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:rtsOpts" class="def">rtsOpts</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:rtsOptsEnabled" class="def">rtsOptsEnabled</a> :: <a href="GHC-Driver-Session.html#t:RtsOptsEnabled" title="GHC.Driver.Session">RtsOptsEnabled</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:rtsOptsSuggestions" class="def">rtsOptsSuggestions</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:hpcDir" class="def">hpcDir</a> :: <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></dfn><div class="doc"><p>Path to store the .mix files</p></div></li><li><dfn class="src"><a id="v:pluginModNames" class="def">pluginModNames</a> :: [<a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a>]</dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:pluginModNameOpts" class="def">pluginModNameOpts</a> :: [(<a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a>, <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>)]</dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:frontendPluginOpts" class="def">frontendPluginOpts</a> :: [<a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>]</dfn><div class="doc"><p>the <code>-ffrontend-opt</code> flags given on the command line, in *reverse*
 order that they're specified on the command line.</p></div></li><li><dfn class="src"><a id="v:cachedPlugins" class="def">cachedPlugins</a> :: [<a href="GHC-Driver-Plugins.html#t:LoadedPlugin" title="GHC.Driver.Plugins">LoadedPlugin</a>]</dfn><div class="doc"><p>plugins dynamically loaded after processing arguments. What will be
 loaded here is directed by pluginModNames. Arguments are loaded from
 pluginModNameOpts. The purpose of this field is to cache the plugins so
 they don't have to be loaded each time they are needed.  See
 <code><a href="GHC-Runtime-Loader.html#v:initializePlugins" title="GHC.Runtime.Loader">initializePlugins</a></code>.</p></div></li><li><dfn class="src"><a id="v:staticPlugins" class="def">staticPlugins</a> :: [<a href="GHC-Driver-Plugins.html#t:StaticPlugin" title="GHC.Driver.Plugins">StaticPlugin</a>]</dfn><div class="doc"><p>static plugins which do not need dynamic loading. These plugins are
 intended to be added by GHC API users directly to this list.</p><p>To add dynamically loaded plugins through the GHC API see
 <code><a href="GHC-Driver-Session.html#v:addPluginModuleName" title="GHC.Driver.Session">addPluginModuleName</a></code> instead.</p></div></li><li><dfn class="src"><a id="v:hooks" class="def">hooks</a> :: <a href="GHC-Driver-Hooks.html#t:Hooks" title="GHC.Driver.Hooks">Hooks</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:depMakefile" class="def">depMakefile</a> :: <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:depIncludePkgDeps" class="def">depIncludePkgDeps</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:depIncludeCppDeps" class="def">depIncludeCppDeps</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:depExcludeMods" class="def">depExcludeMods</a> :: [<a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a>]</dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:depSuffixes" class="def">depSuffixes</a> :: [<a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>]</dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:packageDBFlags" class="def">packageDBFlags</a> :: [<a href="GHC-Driver-Session.html#t:PackageDBFlag" title="GHC.Driver.Session">PackageDBFlag</a>]</dfn><div class="doc"><p>The <code>-package-db</code> flags given on the command line, In
 *reverse* order that they're specified on the command line.
 This is intended to be applied with the list of &quot;initial&quot;
 package databases derived from <code>GHC_PACKAGE_PATH</code>; see
 <code>getUnitDbRefs</code>.</p></div></li><li><dfn class="src"><a id="v:ignorePackageFlags" class="def">ignorePackageFlags</a> :: [<a href="GHC-Driver-Session.html#t:IgnorePackageFlag" title="GHC.Driver.Session">IgnorePackageFlag</a>]</dfn><div class="doc"><p>The <code>-ignore-package</code> flags from the command line.
 In *reverse* order that they're specified on the command line.</p></div></li><li><dfn class="src"><a id="v:packageFlags" class="def">packageFlags</a> :: [<a href="GHC-Driver-Session.html#t:PackageFlag" title="GHC.Driver.Session">PackageFlag</a>]</dfn><div class="doc"><p>The <code>-package</code> and <code>-hide-package</code> flags from the command-line.
 In *reverse* order that they're specified on the command line.</p></div></li><li><dfn class="src"><a id="v:pluginPackageFlags" class="def">pluginPackageFlags</a> :: [<a href="GHC-Driver-Session.html#t:PackageFlag" title="GHC.Driver.Session">PackageFlag</a>]</dfn><div class="doc"><p>The <code>-plugin-package-id</code> flags from command line.
 In *reverse* order that they're specified on the command line.</p></div></li><li><dfn class="src"><a id="v:trustFlags" class="def">trustFlags</a> :: [<a href="GHC-Driver-Session.html#t:TrustFlag" title="GHC.Driver.Session">TrustFlag</a>]</dfn><div class="doc"><p>The <code>-trust</code> and <code>-distrust</code> flags.
 In *reverse* order that they're specified on the command line.</p></div></li><li><dfn class="src"><a id="v:packageEnv" class="def">packageEnv</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a></dfn><div class="doc"><p>Filepath to the package environment file (if overriding default)</p></div></li><li><dfn class="src"><a id="v:unitDatabases" class="def">unitDatabases</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> [<a href="GHC-Unit-State.html#t:UnitDatabase" title="GHC.Unit.State">UnitDatabase</a> <a href="GHC-Unit-Types.html#t:UnitId" title="GHC.Unit.Types">UnitId</a>]</dfn><div class="doc"><p>Stack of unit databases for the target platform.</p><p>This field is populated by <code>initUnits</code>.</p><p><code><a href="GHC-Prelude.html#v:Nothing" title="GHC.Prelude">Nothing</a></code> means the databases have never been read from disk. If
 <code>initUnits</code> is called again, it doesn't reload the databases from
 disk.</p></div></li><li><dfn class="src"><a id="v:unitState" class="def">unitState</a> :: <a href="GHC-Unit-State.html#t:UnitState" title="GHC.Unit.State">UnitState</a></dfn><div class="doc"><p>Consolidated unit database built by <code>initUnits</code> from the unit
 databases in <code><a href="GHC.html#v:unitDatabases" title="GHC">unitDatabases</a></code> and flags ('-ignore-package', etc.).</p><p>It also contains mapping from module names to actual Modules.</p></div></li><li><dfn class="src"><a id="v:filesToClean" class="def">filesToClean</a> :: <a href="GHC-Data-IOEnv.html#t:IORef" title="GHC.Data.IOEnv">IORef</a> <a href="GHC-Driver-Session.html#t:FilesToClean" title="GHC.Driver.Session">FilesToClean</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:dirsToClean" class="def">dirsToClean</a> :: <a href="GHC-Data-IOEnv.html#t:IORef" title="GHC.Data.IOEnv">IORef</a> (<a href="../containers/Data-Map-Strict.html#t:Map" title="Data.Map.Strict">Map</a> <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a> <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a>)</dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:nextTempSuffix" class="def">nextTempSuffix</a> :: <a href="GHC-Data-IOEnv.html#t:IORef" title="GHC.Data.IOEnv">IORef</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:generatedDumps" class="def">generatedDumps</a> :: <a href="GHC-Data-IOEnv.html#t:IORef" title="GHC.Data.IOEnv">IORef</a> (<a href="../containers/Data-Set.html#t:Set" title="Data.Set">Set</a> <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a>)</dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:dumpFlags" class="def">dumpFlags</a> :: <a href="GHC-Data-EnumSet.html#t:EnumSet" title="GHC.Data.EnumSet">EnumSet</a> <a href="GHC-Driver-Session.html#t:DumpFlag" title="GHC.Driver.Session">DumpFlag</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:generalFlags" class="def">generalFlags</a> :: <a href="GHC-Data-EnumSet.html#t:EnumSet" title="GHC.Data.EnumSet">EnumSet</a> <a href="GHC.html#t:GeneralFlag" title="GHC">GeneralFlag</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:warningFlags" class="def">warningFlags</a> :: <a href="GHC-Data-EnumSet.html#t:EnumSet" title="GHC.Data.EnumSet">EnumSet</a> <a href="GHC-Driver-Session.html#t:WarningFlag" title="GHC.Driver.Session">WarningFlag</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:fatalWarningFlags" class="def">fatalWarningFlags</a> :: <a href="GHC-Data-EnumSet.html#t:EnumSet" title="GHC.Data.EnumSet">EnumSet</a> <a href="GHC-Driver-Session.html#t:WarningFlag" title="GHC.Driver.Session">WarningFlag</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:language" class="def">language</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Driver-Session.html#t:Language" title="GHC.Driver.Session">Language</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:safeHaskell" class="def">safeHaskell</a> :: <a href="GHC.html#t:SafeHaskellMode" title="GHC">SafeHaskellMode</a></dfn><div class="doc"><p>Safe Haskell mode</p></div></li><li><dfn class="src"><a id="v:safeInfer" class="def">safeInfer</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:safeInferred" class="def">safeInferred</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:thOnLoc" class="def">thOnLoc</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:newDerivOnLoc" class="def">newDerivOnLoc</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:deriveViaOnLoc" class="def">deriveViaOnLoc</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:overlapInstLoc" class="def">overlapInstLoc</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:incoherentOnLoc" class="def">incoherentOnLoc</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:pkgTrustOnLoc" class="def">pkgTrustOnLoc</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:warnSafeOnLoc" class="def">warnSafeOnLoc</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:warnUnsafeOnLoc" class="def">warnUnsafeOnLoc</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:trustworthyOnLoc" class="def">trustworthyOnLoc</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:extensions" class="def">extensions</a> :: [OnOff <a href="../ghc-boot-th/GHC-LanguageExtensions-Type.html#t:Extension" title="GHC.LanguageExtensions.Type">Extension</a>]</dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:extensionFlags" class="def">extensionFlags</a> :: <a href="GHC-Data-EnumSet.html#t:EnumSet" title="GHC.Data.EnumSet">EnumSet</a> <a href="../ghc-boot-th/GHC-LanguageExtensions-Type.html#t:Extension" title="GHC.LanguageExtensions.Type">Extension</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:ufCreationThreshold" class="def">ufCreationThreshold</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:ufUseThreshold" class="def">ufUseThreshold</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:ufFunAppDiscount" class="def">ufFunAppDiscount</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:ufDictDiscount" class="def">ufDictDiscount</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:ufDearOp" class="def">ufDearOp</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:ufVeryAggressive" class="def">ufVeryAggressive</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:maxWorkerArgs" class="def">maxWorkerArgs</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:ghciHistSize" class="def">ghciHistSize</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:log_action" class="def">log_action</a> :: <a href="GHC-Driver-Session.html#t:LogAction" title="GHC.Driver.Session">LogAction</a></dfn><div class="doc"><p>MsgDoc output action: use <a href="GHC-Utils-Error.html">GHC.Utils.Error</a> instead of this if you can</p></div></li><li><dfn class="src"><a id="v:dump_action" class="def">dump_action</a> :: <a href="GHC-Utils-Error.html#t:DumpAction" title="GHC.Utils.Error">DumpAction</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:trace_action" class="def">trace_action</a> :: <a href="GHC-Utils-Error.html#t:TraceAction" title="GHC.Utils.Error">TraceAction</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:flushOut" class="def">flushOut</a> :: <a href="GHC-Driver-Session.html#t:FlushOut" title="GHC.Driver.Session">FlushOut</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:flushErr" class="def">flushErr</a> :: <a href="GHC-Driver-Session.html#t:FlushErr" title="GHC.Driver.Session">FlushErr</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:ghcVersionFile" class="def">ghcVersionFile</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:haddockOptions" class="def">haddockOptions</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:ghciScripts" class="def">ghciScripts</a> :: [<a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>]</dfn><div class="doc"><p>GHCi scripts specified by -ghci-script, in reverse order</p></div></li><li><dfn class="src"><a id="v:pprUserLength" class="def">pprUserLength</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:pprCols" class="def">pprCols</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:useUnicode" class="def">useUnicode</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:useColor" class="def">useColor</a> :: <a href="GHC-Utils-Misc.html#t:OverridingBool" title="GHC.Utils.Misc">OverridingBool</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:canUseColor" class="def">canUseColor</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:colScheme" class="def">colScheme</a> :: <a href="GHC-Utils-Ppr-Colour.html#t:Scheme" title="GHC.Utils.Ppr.Colour">Scheme</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:profAuto" class="def">profAuto</a> :: <a href="GHC-Driver-Session.html#t:ProfAuto" title="GHC.Driver.Session">ProfAuto</a></dfn><div class="doc"><p>what kind of {-# SCC #-} to add automatically</p></div></li><li><dfn class="src"><a id="v:interactivePrint" class="def">interactivePrint</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:nextWrapperNum" class="def">nextWrapperNum</a> :: <a href="GHC-Data-IOEnv.html#t:IORef" title="GHC.Data.IOEnv">IORef</a> (<a href="GHC-Unit-Module-Env.html#t:ModuleEnv" title="GHC.Unit.Module.Env">ModuleEnv</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a>)</dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:sseVersion" class="def">sseVersion</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="../ghc-boot/GHC-Platform.html#t:SseVersion" title="GHC.Platform">SseVersion</a></dfn><div class="doc"><p>Machine dependent flags (-m&lt;blah&gt; stuff)</p></div></li><li><dfn class="src"><a id="v:bmiVersion" class="def">bmiVersion</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="../ghc-boot/GHC-Platform.html#t:BmiVersion" title="GHC.Platform">BmiVersion</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:avx" class="def">avx</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:avx2" class="def">avx2</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:avx512cd" class="def">avx512cd</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:avx512er" class="def">avx512er</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:avx512f" class="def">avx512f</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:avx512pf" class="def">avx512pf</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:rtldInfo" class="def">rtldInfo</a> :: <a href="GHC-Data-IOEnv.html#t:IORef" title="GHC.Data.IOEnv">IORef</a> (<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Driver-Session.html#t:LinkerInfo" title="GHC.Driver.Session">LinkerInfo</a>)</dfn><div class="doc"><p>Run-time linker information (what options we need, etc.)</p></div></li><li><dfn class="src"><a id="v:rtccInfo" class="def">rtccInfo</a> :: <a href="GHC-Data-IOEnv.html#t:IORef" title="GHC.Data.IOEnv">IORef</a> (<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Driver-Session.html#t:CompilerInfo" title="GHC.Driver.Session">CompilerInfo</a>)</dfn><div class="doc"><p>Run-time compiler information</p></div></li><li><dfn class="src"><a id="v:maxInlineAllocSize" class="def">maxInlineAllocSize</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc"><p>Max size, in bytes, of inline array allocations.</p></div></li><li><dfn class="src"><a id="v:maxInlineMemcpyInsns" class="def">maxInlineMemcpyInsns</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc"><p>Only inline memcpy if it generates no more than this many
 pseudo (roughly: Cmm) instructions.</p></div></li><li><dfn class="src"><a id="v:maxInlineMemsetInsns" class="def">maxInlineMemsetInsns</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc"><p>Only inline memset if it generates no more than this many
 pseudo (roughly: Cmm) instructions.</p></div></li><li><dfn class="src"><a id="v:reverseErrors" class="def">reverseErrors</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></dfn><div class="doc"><p>Reverse the order of error messages in GHC/GHCi</p></div></li><li><dfn class="src"><a id="v:maxErrors" class="def">maxErrors</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc"><p>Limit the maximum number of errors to show</p></div></li><li><dfn class="src"><a id="v:initialUnique" class="def">initialUnique</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc"><p>Unique supply configuration for testing build determinism</p></div></li><li><dfn class="src"><a id="v:uniqueIncrement" class="def">uniqueIncrement</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:cfgWeightInfo" class="def">cfgWeightInfo</a> :: <a href="GHC-Driver-Session.html#t:CfgWeights" title="GHC.Driver.Session">CfgWeights</a></dfn><div class="doc"><p>Temporary: CFG Edge weights for fast iterations</p></div></li></ul></div></td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:GeneralFlag" class="def">GeneralFlag</a> <a href="src/GHC.Driver.Flags.html#GeneralFlag" class="link">Source</a> <a href="#t:GeneralFlag" class="selflink">#</a></p><div class="doc"><p>Enumerates the simple on-or-off dynamic flags</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Opt_DumpToFile" class="def">Opt_DumpToFile</a></td><td class="doc"><p>Append dump output to files instead of stdout.</p></td></tr><tr><td class="src"><a id="v:Opt_D_faststring_stats" class="def">Opt_D_faststring_stats</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_D_dump_minimal_imports" class="def">Opt_D_dump_minimal_imports</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_DoCoreLinting" class="def">Opt_DoCoreLinting</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_DoLinearCoreLinting" class="def">Opt_DoLinearCoreLinting</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_DoStgLinting" class="def">Opt_DoStgLinting</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_DoCmmLinting" class="def">Opt_DoCmmLinting</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_DoAsmLinting" class="def">Opt_DoAsmLinting</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_DoAnnotationLinting" class="def">Opt_DoAnnotationLinting</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_NoLlvmMangler" class="def">Opt_NoLlvmMangler</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_FastLlvm" class="def">Opt_FastLlvm</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_NoTypeableBinds" class="def">Opt_NoTypeableBinds</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_WarnIsError" class="def">Opt_WarnIsError</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_ShowWarnGroups" class="def">Opt_ShowWarnGroups</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_HideSourcePaths" class="def">Opt_HideSourcePaths</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_PrintExplicitForalls" class="def">Opt_PrintExplicitForalls</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_PrintExplicitKinds" class="def">Opt_PrintExplicitKinds</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_PrintExplicitCoercions" class="def">Opt_PrintExplicitCoercions</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_PrintExplicitRuntimeReps" class="def">Opt_PrintExplicitRuntimeReps</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_PrintEqualityRelations" class="def">Opt_PrintEqualityRelations</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_PrintAxiomIncomps" class="def">Opt_PrintAxiomIncomps</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_PrintUnicodeSyntax" class="def">Opt_PrintUnicodeSyntax</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_PrintExpandedSynonyms" class="def">Opt_PrintExpandedSynonyms</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_PrintPotentialInstances" class="def">Opt_PrintPotentialInstances</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_PrintTypecheckerElaboration" class="def">Opt_PrintTypecheckerElaboration</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_CallArity" class="def">Opt_CallArity</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_Exitification" class="def">Opt_Exitification</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_Strictness" class="def">Opt_Strictness</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_LateDmdAnal" class="def">Opt_LateDmdAnal</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_KillAbsence" class="def">Opt_KillAbsence</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_KillOneShot" class="def">Opt_KillOneShot</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_FullLaziness" class="def">Opt_FullLaziness</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_FloatIn" class="def">Opt_FloatIn</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_LateSpecialise" class="def">Opt_LateSpecialise</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_Specialise" class="def">Opt_Specialise</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_SpecialiseAggressively" class="def">Opt_SpecialiseAggressively</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_CrossModuleSpecialise" class="def">Opt_CrossModuleSpecialise</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_StaticArgumentTransformation" class="def">Opt_StaticArgumentTransformation</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_CSE" class="def">Opt_CSE</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_StgCSE" class="def">Opt_StgCSE</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_StgLiftLams" class="def">Opt_StgLiftLams</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_LiberateCase" class="def">Opt_LiberateCase</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_SpecConstr" class="def">Opt_SpecConstr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_SpecConstrKeen" class="def">Opt_SpecConstrKeen</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_DoLambdaEtaExpansion" class="def">Opt_DoLambdaEtaExpansion</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_IgnoreAsserts" class="def">Opt_IgnoreAsserts</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_DoEtaReduction" class="def">Opt_DoEtaReduction</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_CaseMerge" class="def">Opt_CaseMerge</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_CaseFolding" class="def">Opt_CaseFolding</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_UnboxStrictFields" class="def">Opt_UnboxStrictFields</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_UnboxSmallStrictFields" class="def">Opt_UnboxSmallStrictFields</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_DictsCheap" class="def">Opt_DictsCheap</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_EnableRewriteRules" class="def">Opt_EnableRewriteRules</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_EnableThSpliceWarnings" class="def">Opt_EnableThSpliceWarnings</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_RegsGraph" class="def">Opt_RegsGraph</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_RegsIterative" class="def">Opt_RegsIterative</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_PedanticBottoms" class="def">Opt_PedanticBottoms</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_LlvmTBAA" class="def">Opt_LlvmTBAA</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_LlvmFillUndefWithGarbage" class="def">Opt_LlvmFillUndefWithGarbage</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_IrrefutableTuples" class="def">Opt_IrrefutableTuples</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_CmmSink" class="def">Opt_CmmSink</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_CmmStaticPred" class="def">Opt_CmmStaticPred</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_CmmElimCommonBlocks" class="def">Opt_CmmElimCommonBlocks</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_AsmShortcutting" class="def">Opt_AsmShortcutting</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_OmitYields" class="def">Opt_OmitYields</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_FunToThunk" class="def">Opt_FunToThunk</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_DictsStrict" class="def">Opt_DictsStrict</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_DmdTxDictSel" class="def">Opt_DmdTxDictSel</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_Loopification" class="def">Opt_Loopification</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_CfgBlocklayout" class="def">Opt_CfgBlocklayout</a></td><td class="doc"><p>Use the cfg based block layout algorithm.</p></td></tr><tr><td class="src"><a id="v:Opt_WeightlessBlocklayout" class="def">Opt_WeightlessBlocklayout</a></td><td class="doc"><p>Layout based on last instruction per block.</p></td></tr><tr><td class="src"><a id="v:Opt_CprAnal" class="def">Opt_CprAnal</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_WorkerWrapper" class="def">Opt_WorkerWrapper</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_SolveConstantDicts" class="def">Opt_SolveConstantDicts</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_AlignmentSanitisation" class="def">Opt_AlignmentSanitisation</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_CatchBottoms" class="def">Opt_CatchBottoms</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_NumConstantFolding" class="def">Opt_NumConstantFolding</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_SimplPreInlining" class="def">Opt_SimplPreInlining</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_IgnoreInterfacePragmas" class="def">Opt_IgnoreInterfacePragmas</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_OmitInterfacePragmas" class="def">Opt_OmitInterfacePragmas</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_ExposeAllUnfoldings" class="def">Opt_ExposeAllUnfoldings</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_WriteInterface" class="def">Opt_WriteInterface</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_WriteHie" class="def">Opt_WriteHie</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_AutoSccsOnIndividualCafs" class="def">Opt_AutoSccsOnIndividualCafs</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_ProfCountEntries" class="def">Opt_ProfCountEntries</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_Pp" class="def">Opt_Pp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_ForceRecomp" class="def">Opt_ForceRecomp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_IgnoreOptimChanges" class="def">Opt_IgnoreOptimChanges</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_IgnoreHpcChanges" class="def">Opt_IgnoreHpcChanges</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_ExcessPrecision" class="def">Opt_ExcessPrecision</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_EagerBlackHoling" class="def">Opt_EagerBlackHoling</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_NoHsMain" class="def">Opt_NoHsMain</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_SplitSections" class="def">Opt_SplitSections</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_StgStats" class="def">Opt_StgStats</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_HideAllPackages" class="def">Opt_HideAllPackages</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_HideAllPluginPackages" class="def">Opt_HideAllPluginPackages</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_PrintBindResult" class="def">Opt_PrintBindResult</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_Haddock" class="def">Opt_Haddock</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_HaddockOptions" class="def">Opt_HaddockOptions</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_BreakOnException" class="def">Opt_BreakOnException</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_BreakOnError" class="def">Opt_BreakOnError</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_PrintEvldWithShow" class="def">Opt_PrintEvldWithShow</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_PrintBindContents" class="def">Opt_PrintBindContents</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_GenManifest" class="def">Opt_GenManifest</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_EmbedManifest" class="def">Opt_EmbedManifest</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_SharedImplib" class="def">Opt_SharedImplib</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_BuildingCabalPackage" class="def">Opt_BuildingCabalPackage</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_IgnoreDotGhci" class="def">Opt_IgnoreDotGhci</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_GhciSandbox" class="def">Opt_GhciSandbox</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_GhciHistory" class="def">Opt_GhciHistory</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_GhciLeakCheck" class="def">Opt_GhciLeakCheck</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_ValidateHie" class="def">Opt_ValidateHie</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_LocalGhciHistory" class="def">Opt_LocalGhciHistory</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_NoIt" class="def">Opt_NoIt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_HelpfulErrors" class="def">Opt_HelpfulErrors</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_DeferTypeErrors" class="def">Opt_DeferTypeErrors</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_DeferTypedHoles" class="def">Opt_DeferTypedHoles</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_DeferOutOfScopeVariables" class="def">Opt_DeferOutOfScopeVariables</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_PIC" class="def">Opt_PIC</a></td><td class="doc"><pre>-fPIC</pre></td></tr><tr><td class="src"><a id="v:Opt_PIE" class="def">Opt_PIE</a></td><td class="doc"><pre>-fPIE</pre></td></tr><tr><td class="src"><a id="v:Opt_PICExecutable" class="def">Opt_PICExecutable</a></td><td class="doc"><pre>-pie</pre></td></tr><tr><td class="src"><a id="v:Opt_ExternalDynamicRefs" class="def">Opt_ExternalDynamicRefs</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_Ticky" class="def">Opt_Ticky</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_Ticky_Allocd" class="def">Opt_Ticky_Allocd</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_Ticky_LNE" class="def">Opt_Ticky_LNE</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_Ticky_Dyn_Thunk" class="def">Opt_Ticky_Dyn_Thunk</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_RPath" class="def">Opt_RPath</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_RelativeDynlibPaths" class="def">Opt_RelativeDynlibPaths</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_Hpc" class="def">Opt_Hpc</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_FlatCache" class="def">Opt_FlatCache</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_ExternalInterpreter" class="def">Opt_ExternalInterpreter</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_OptimalApplicativeDo" class="def">Opt_OptimalApplicativeDo</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_VersionMacros" class="def">Opt_VersionMacros</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_WholeArchiveHsLibs" class="def">Opt_WholeArchiveHsLibs</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_SingleLibFolder" class="def">Opt_SingleLibFolder</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_KeepCAFs" class="def">Opt_KeepCAFs</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_KeepGoing" class="def">Opt_KeepGoing</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_ByteCodeIfUnboxed" class="def">Opt_ByteCodeIfUnboxed</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_LinkRts" class="def">Opt_LinkRts</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_ErrorSpans" class="def">Opt_ErrorSpans</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_DeferDiagnostics" class="def">Opt_DeferDiagnostics</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_DiagnosticsShowCaret" class="def">Opt_DiagnosticsShowCaret</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_PprCaseAsLet" class="def">Opt_PprCaseAsLet</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_PprShowTicks" class="def">Opt_PprShowTicks</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_ShowHoleConstraints" class="def">Opt_ShowHoleConstraints</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_ShowValidHoleFits" class="def">Opt_ShowValidHoleFits</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_SortValidHoleFits" class="def">Opt_SortValidHoleFits</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_SortBySizeHoleFits" class="def">Opt_SortBySizeHoleFits</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_SortBySubsumHoleFits" class="def">Opt_SortBySubsumHoleFits</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_AbstractRefHoleFits" class="def">Opt_AbstractRefHoleFits</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_UnclutterValidHoleFits" class="def">Opt_UnclutterValidHoleFits</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_ShowTypeAppOfHoleFits" class="def">Opt_ShowTypeAppOfHoleFits</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_ShowTypeAppVarsOfHoleFits" class="def">Opt_ShowTypeAppVarsOfHoleFits</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_ShowDocsOfHoleFits" class="def">Opt_ShowDocsOfHoleFits</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_ShowTypeOfHoleFits" class="def">Opt_ShowTypeOfHoleFits</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_ShowProvOfHoleFits" class="def">Opt_ShowProvOfHoleFits</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_ShowMatchesOfHoleFits" class="def">Opt_ShowMatchesOfHoleFits</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_ShowLoadedModules" class="def">Opt_ShowLoadedModules</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_HexWordLiterals" class="def">Opt_HexWordLiterals</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_SuppressCoercions" class="def">Opt_SuppressCoercions</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_SuppressVarKinds" class="def">Opt_SuppressVarKinds</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_SuppressModulePrefixes" class="def">Opt_SuppressModulePrefixes</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_SuppressTypeApplications" class="def">Opt_SuppressTypeApplications</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_SuppressIdInfo" class="def">Opt_SuppressIdInfo</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_SuppressUnfoldings" class="def">Opt_SuppressUnfoldings</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_SuppressTypeSignatures" class="def">Opt_SuppressTypeSignatures</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_SuppressUniques" class="def">Opt_SuppressUniques</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_SuppressStgExts" class="def">Opt_SuppressStgExts</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_SuppressTicks" class="def">Opt_SuppressTicks</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_SuppressTimestamps" class="def">Opt_SuppressTimestamps</a></td><td class="doc"><p>Suppress timestamps in dumps</p></td></tr><tr><td class="src"><a id="v:Opt_AutoLinkPackages" class="def">Opt_AutoLinkPackages</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_ImplicitImportQualified" class="def">Opt_ImplicitImportQualified</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_KeepHscppFiles" class="def">Opt_KeepHscppFiles</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_KeepHiDiffs" class="def">Opt_KeepHiDiffs</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_KeepHcFiles" class="def">Opt_KeepHcFiles</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_KeepSFiles" class="def">Opt_KeepSFiles</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_KeepTmpFiles" class="def">Opt_KeepTmpFiles</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_KeepRawTokenStream" class="def">Opt_KeepRawTokenStream</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_KeepLlvmFiles" class="def">Opt_KeepLlvmFiles</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_KeepHiFiles" class="def">Opt_KeepHiFiles</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_KeepOFiles" class="def">Opt_KeepOFiles</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_BuildDynamicToo" class="def">Opt_BuildDynamicToo</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_DistrustAllPackages" class="def">Opt_DistrustAllPackages</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_PackageTrust" class="def">Opt_PackageTrust</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_PluginTrustworthy" class="def">Opt_PluginTrustworthy</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_G_NoStateHack" class="def">Opt_G_NoStateHack</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Opt_G_NoOptCoercion" class="def">Opt_G_NoOptCoercion</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:GeneralFlag">Instances</h4><details id="i:GeneralFlag" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:GeneralFlag:Enum:1"></span> <a href="GHC-Prelude.html#t:Enum" title="GHC.Prelude">Enum</a> <a href="GHC.html#t:GeneralFlag" title="GHC">GeneralFlag</a></span> <a href="src/GHC.Driver.Flags.html#line-353" class="link">Source</a> <a href="#t:GeneralFlag" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:GeneralFlag:Enum:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Flags.html">GHC.Driver.Flags</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:succ">succ</a> :: <a href="GHC.html#t:GeneralFlag" title="GHC">GeneralFlag</a> -&gt; <a href="GHC.html#t:GeneralFlag" title="GHC">GeneralFlag</a> <a href="../base/src/GHC.Enum.html#succ" class="link">Source</a> <a href="#v:succ" class="selflink">#</a></p><p class="src"><a href="#v:pred">pred</a> :: <a href="GHC.html#t:GeneralFlag" title="GHC">GeneralFlag</a> -&gt; <a href="GHC.html#t:GeneralFlag" title="GHC">GeneralFlag</a> <a href="../base/src/GHC.Enum.html#pred" class="link">Source</a> <a href="#v:pred" class="selflink">#</a></p><p class="src"><a href="#v:toEnum">toEnum</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; <a href="GHC.html#t:GeneralFlag" title="GHC">GeneralFlag</a> <a href="../base/src/GHC.Enum.html#toEnum" class="link">Source</a> <a href="#v:toEnum" class="selflink">#</a></p><p class="src"><a href="#v:fromEnum">fromEnum</a> :: <a href="GHC.html#t:GeneralFlag" title="GHC">GeneralFlag</a> -&gt; <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> <a href="../base/src/GHC.Enum.html#fromEnum" class="link">Source</a> <a href="#v:fromEnum" class="selflink">#</a></p><p class="src"><a href="#v:enumFrom">enumFrom</a> :: <a href="GHC.html#t:GeneralFlag" title="GHC">GeneralFlag</a> -&gt; [<a href="GHC.html#t:GeneralFlag" title="GHC">GeneralFlag</a>] <a href="../base/src/GHC.Enum.html#enumFrom" class="link">Source</a> <a href="#v:enumFrom" class="selflink">#</a></p><p class="src"><a href="#v:enumFromThen">enumFromThen</a> :: <a href="GHC.html#t:GeneralFlag" title="GHC">GeneralFlag</a> -&gt; <a href="GHC.html#t:GeneralFlag" title="GHC">GeneralFlag</a> -&gt; [<a href="GHC.html#t:GeneralFlag" title="GHC">GeneralFlag</a>] <a href="../base/src/GHC.Enum.html#enumFromThen" class="link">Source</a> <a href="#v:enumFromThen" class="selflink">#</a></p><p class="src"><a href="#v:enumFromTo">enumFromTo</a> :: <a href="GHC.html#t:GeneralFlag" title="GHC">GeneralFlag</a> -&gt; <a href="GHC.html#t:GeneralFlag" title="GHC">GeneralFlag</a> -&gt; [<a href="GHC.html#t:GeneralFlag" title="GHC">GeneralFlag</a>] <a href="../base/src/GHC.Enum.html#enumFromTo" class="link">Source</a> <a href="#v:enumFromTo" class="selflink">#</a></p><p class="src"><a href="#v:enumFromThenTo">enumFromThenTo</a> :: <a href="GHC.html#t:GeneralFlag" title="GHC">GeneralFlag</a> -&gt; <a href="GHC.html#t:GeneralFlag" title="GHC">GeneralFlag</a> -&gt; <a href="GHC.html#t:GeneralFlag" title="GHC">GeneralFlag</a> -&gt; [<a href="GHC.html#t:GeneralFlag" title="GHC">GeneralFlag</a>] <a href="../base/src/GHC.Enum.html#enumFromThenTo" class="link">Source</a> <a href="#v:enumFromThenTo" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:GeneralFlag:Show:2"></span> <a href="GHC-Prelude.html#t:Show" title="GHC.Prelude">Show</a> <a href="GHC.html#t:GeneralFlag" title="GHC">GeneralFlag</a></span> <a href="src/GHC.Driver.Flags.html#line-353" class="link">Source</a> <a href="#t:GeneralFlag" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:GeneralFlag:Show:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Flags.html">GHC.Driver.Flags</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; <a href="GHC.html#t:GeneralFlag" title="GHC">GeneralFlag</a> -&gt; <a href="GHC-Prelude.html#t:ShowS" title="GHC.Prelude">ShowS</a> <a href="../base/src/GHC.Show.html#showsPrec" class="link">Source</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="GHC.html#t:GeneralFlag" title="GHC">GeneralFlag</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> <a href="../base/src/GHC.Show.html#show" class="link">Source</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="GHC.html#t:GeneralFlag" title="GHC">GeneralFlag</a>] -&gt; <a href="GHC-Prelude.html#t:ShowS" title="GHC.Prelude">ShowS</a> <a href="../base/src/GHC.Show.html#showList" class="link">Source</a> <a href="#v:showList" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:GeneralFlag:Eq:3"></span> <a href="GHC-Prelude.html#t:Eq" title="GHC.Prelude">Eq</a> <a href="GHC.html#t:GeneralFlag" title="GHC">GeneralFlag</a></span> <a href="src/GHC.Driver.Flags.html#line-353" class="link">Source</a> <a href="#t:GeneralFlag" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:GeneralFlag:Eq:3"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Flags.html">GHC.Driver.Flags</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="GHC.html#t:GeneralFlag" title="GHC">GeneralFlag</a> -&gt; <a href="GHC.html#t:GeneralFlag" title="GHC">GeneralFlag</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="GHC.html#t:GeneralFlag" title="GHC">GeneralFlag</a> -&gt; <a href="GHC.html#t:GeneralFlag" title="GHC">GeneralFlag</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Severity" class="def">Severity</a> <a href="src/GHC.Utils.Error.html#Severity" class="link">Source</a> <a href="#t:Severity" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:SevOutput" class="def">SevOutput</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:SevFatal" class="def">SevFatal</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:SevInteractive" class="def">SevInteractive</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:SevDump" class="def">SevDump</a></td><td class="doc"><p>Log message intended for compiler developers
 No file/line/column stuff</p></td></tr><tr><td class="src"><a id="v:SevInfo" class="def">SevInfo</a></td><td class="doc"><p>Log messages intended for end users.
 No file/line/column stuff.</p></td></tr><tr><td class="src"><a id="v:SevWarning" class="def">SevWarning</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:SevError" class="def">SevError</a></td><td class="doc"><p>SevWarning and SevError are used for warnings and errors
   o The message has a file/line/column heading,
     plus &quot;warning:&quot; or &quot;error:&quot;,
     added by mkLocMessags
   o Output is intended for end users</p></td></tr></table></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:Severity">Instances</h4><details id="i:Severity" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Severity:Show:1"></span> <a href="GHC-Prelude.html#t:Show" title="GHC.Prelude">Show</a> <a href="GHC.html#t:Severity" title="GHC">Severity</a></span> <a href="src/GHC.Utils.Error.html#line-186" class="link">Source</a> <a href="#t:Severity" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:Severity:Show:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Utils-Error.html">GHC.Utils.Error</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; <a href="GHC.html#t:Severity" title="GHC">Severity</a> -&gt; <a href="GHC-Prelude.html#t:ShowS" title="GHC.Prelude">ShowS</a> <a href="../base/src/GHC.Show.html#showsPrec" class="link">Source</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="GHC.html#t:Severity" title="GHC">Severity</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> <a href="../base/src/GHC.Show.html#show" class="link">Source</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="GHC.html#t:Severity" title="GHC">Severity</a>] -&gt; <a href="GHC-Prelude.html#t:ShowS" title="GHC.Prelude">ShowS</a> <a href="../base/src/GHC.Show.html#showList" class="link">Source</a> <a href="#v:showList" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Severity:ToJson:2"></span> <a href="GHC-Utils-Json.html#t:ToJson" title="GHC.Utils.Json">ToJson</a> <a href="GHC.html#t:Severity" title="GHC">Severity</a></span> <a href="src/GHC.Utils.Error.html#line-189" class="link">Source</a> <a href="#t:Severity" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:Severity:ToJson:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Utils-Error.html">GHC.Utils.Error</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:json">json</a> :: <a href="GHC.html#t:Severity" title="GHC">Severity</a> -&gt; <a href="GHC-Utils-Json.html#t:JsonDoc" title="GHC.Utils.Json">JsonDoc</a> <a href="src/GHC.Utils.Json.html#json" class="link">Source</a> <a href="#v:json" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:HscTarget" class="def">HscTarget</a> <a href="src/GHC.Driver.Session.html#HscTarget" class="link">Source</a> <a href="#t:HscTarget" class="selflink">#</a></p><div class="doc"><p>The target code type of the compilation (if any).</p><p>Whenever you change the target, also make sure to set <code><a href="GHC.html#v:ghcLink" title="GHC">ghcLink</a></code> to
 something sensible.</p><p><code><a href="GHC.html#v:HscNothing" title="GHC">HscNothing</a></code> can be used to avoid generating any output, however, note
 that:</p><ul><li>If a program uses Template Haskell the typechecker may need to run code
    from an imported module.  To facilitate this, code generation is enabled
    for modules imported by modules that use template haskell.
    See Note [-fno-code mode].</li></ul></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:HscC" class="def">HscC</a></td><td class="doc"><p>Generate C code.</p></td></tr><tr><td class="src"><a id="v:HscAsm" class="def">HscAsm</a></td><td class="doc"><p>Generate assembly using the native code generator.</p></td></tr><tr><td class="src"><a id="v:HscLlvm" class="def">HscLlvm</a></td><td class="doc"><p>Generate assembly using the llvm code generator.</p></td></tr><tr><td class="src"><a id="v:HscInterpreted" class="def">HscInterpreted</a></td><td class="doc"><p>Generate bytecode.  (Requires <code><a href="GHC.html#v:LinkInMemory" title="GHC">LinkInMemory</a></code>)</p></td></tr><tr><td class="src"><a id="v:HscNothing" class="def">HscNothing</a></td><td class="doc"><p>Don't generate any code.  See notes above.</p></td></tr></table></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:HscTarget">Instances</h4><details id="i:HscTarget" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:HscTarget:Show:1"></span> <a href="GHC-Prelude.html#t:Show" title="GHC.Prelude">Show</a> <a href="GHC.html#t:HscTarget" title="GHC">HscTarget</a></span> <a href="src/GHC.Driver.Session.html#line-1068" class="link">Source</a> <a href="#t:HscTarget" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:HscTarget:Show:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Session.html">GHC.Driver.Session</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; <a href="GHC.html#t:HscTarget" title="GHC">HscTarget</a> -&gt; <a href="GHC-Prelude.html#t:ShowS" title="GHC.Prelude">ShowS</a> <a href="../base/src/GHC.Show.html#showsPrec" class="link">Source</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="GHC.html#t:HscTarget" title="GHC">HscTarget</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> <a href="../base/src/GHC.Show.html#show" class="link">Source</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="GHC.html#t:HscTarget" title="GHC">HscTarget</a>] -&gt; <a href="GHC-Prelude.html#t:ShowS" title="GHC.Prelude">ShowS</a> <a href="../base/src/GHC.Show.html#showList" class="link">Source</a> <a href="#v:showList" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:HscTarget:Eq:2"></span> <a href="GHC-Prelude.html#t:Eq" title="GHC.Prelude">Eq</a> <a href="GHC.html#t:HscTarget" title="GHC">HscTarget</a></span> <a href="src/GHC.Driver.Session.html#line-1068" class="link">Source</a> <a href="#t:HscTarget" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:HscTarget:Eq:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Session.html">GHC.Driver.Session</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="GHC.html#t:HscTarget" title="GHC">HscTarget</a> -&gt; <a href="GHC.html#t:HscTarget" title="GHC">HscTarget</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="GHC.html#t:HscTarget" title="GHC">HscTarget</a> -&gt; <a href="GHC.html#t:HscTarget" title="GHC">HscTarget</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><a id="v:gopt" class="def">gopt</a> :: <a href="GHC.html#t:GeneralFlag" title="GHC">GeneralFlag</a> -&gt; <a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Driver.Session.html#gopt" class="link">Source</a> <a href="#v:gopt" class="selflink">#</a></p><div class="doc"><p>Test whether a <code><a href="GHC.html#t:GeneralFlag" title="GHC">GeneralFlag</a></code> is set</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:GhcMode" class="def">GhcMode</a> <a href="src/GHC.Driver.Session.html#GhcMode" class="link">Source</a> <a href="#t:GhcMode" class="selflink">#</a></p><div class="doc"><p>The <code><a href="GHC.html#t:GhcMode" title="GHC">GhcMode</a></code> tells us whether we're doing multi-module
 compilation (controlled via the <a href="GHC.html">GHC</a> API) or one-shot
 (single-module) compilation.  This makes a difference primarily to
 the <a href="GHC-Driver-Finder.html">GHC.Driver.Finder</a>: in one-shot mode we look for interface files for
 imported modules, but in multi-module mode we look for source files
 in order to check whether they need to be recompiled.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:CompManager" class="def">CompManager</a></td><td class="doc"><p><code>--make</code>, GHCi, etc.</p></td></tr><tr><td class="src"><a id="v:OneShot" class="def">OneShot</a></td><td class="doc"><pre>ghc -c Foo.hs</pre></td></tr><tr><td class="src"><a id="v:MkDepend" class="def">MkDepend</a></td><td class="doc"><p><code>ghc -M</code>, see <a href="GHC-Driver-Finder.html">GHC.Driver.Finder</a> for why we need this</p></td></tr></table></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:GhcMode">Instances</h4><details id="i:GhcMode" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:GhcMode:Outputable:1"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC.html#t:GhcMode" title="GHC">GhcMode</a></span> <a href="src/GHC.Driver.Session.html#line-1100" class="link">Source</a> <a href="#t:GhcMode" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:GhcMode:Outputable:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Session.html">GHC.Driver.Session</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC.html#t:GhcMode" title="GHC">GhcMode</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC.html#t:GhcMode" title="GHC">GhcMode</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:GhcMode:Eq:2"></span> <a href="GHC-Prelude.html#t:Eq" title="GHC.Prelude">Eq</a> <a href="GHC.html#t:GhcMode" title="GHC">GhcMode</a></span> <a href="src/GHC.Driver.Session.html#line-1098" class="link">Source</a> <a href="#t:GhcMode" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:GhcMode:Eq:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Session.html">GHC.Driver.Session</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="GHC.html#t:GhcMode" title="GHC">GhcMode</a> -&gt; <a href="GHC.html#t:GhcMode" title="GHC">GhcMode</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="GHC.html#t:GhcMode" title="GHC">GhcMode</a> -&gt; <a href="GHC.html#t:GhcMode" title="GHC">GhcMode</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:GhcLink" class="def">GhcLink</a> <a href="src/GHC.Driver.Session.html#GhcLink" class="link">Source</a> <a href="#t:GhcLink" class="selflink">#</a></p><div class="doc"><p>What to do in the link step, if there is one.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:NoLink" class="def">NoLink</a></td><td class="doc"><p>Don't link at all</p></td></tr><tr><td class="src"><a id="v:LinkBinary" class="def">LinkBinary</a></td><td class="doc"><p>Link object code into a binary</p></td></tr><tr><td class="src"><a id="v:LinkInMemory" class="def">LinkInMemory</a></td><td class="doc"><p>Use the in-memory dynamic linker (works for both
   bytecode and object code).</p></td></tr><tr><td class="src"><a id="v:LinkDynLib" class="def">LinkDynLib</a></td><td class="doc"><p>Link objects into a dynamic lib (DLL on Windows, DSO on ELF platforms)</p></td></tr><tr><td class="src"><a id="v:LinkStaticLib" class="def">LinkStaticLib</a></td><td class="doc"><p>Link objects into a static lib</p></td></tr></table></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:GhcLink">Instances</h4><details id="i:GhcLink" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:GhcLink:Show:1"></span> <a href="GHC-Prelude.html#t:Show" title="GHC.Prelude">Show</a> <a href="GHC.html#t:GhcLink" title="GHC">GhcLink</a></span> <a href="src/GHC.Driver.Session.html#line-1117" class="link">Source</a> <a href="#t:GhcLink" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:GhcLink:Show:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Session.html">GHC.Driver.Session</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; <a href="GHC.html#t:GhcLink" title="GHC">GhcLink</a> -&gt; <a href="GHC-Prelude.html#t:ShowS" title="GHC.Prelude">ShowS</a> <a href="../base/src/GHC.Show.html#showsPrec" class="link">Source</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="GHC.html#t:GhcLink" title="GHC">GhcLink</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> <a href="../base/src/GHC.Show.html#show" class="link">Source</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="GHC.html#t:GhcLink" title="GHC">GhcLink</a>] -&gt; <a href="GHC-Prelude.html#t:ShowS" title="GHC.Prelude">ShowS</a> <a href="../base/src/GHC.Show.html#showList" class="link">Source</a> <a href="#v:showList" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:GhcLink:Eq:2"></span> <a href="GHC-Prelude.html#t:Eq" title="GHC.Prelude">Eq</a> <a href="GHC.html#t:GhcLink" title="GHC">GhcLink</a></span> <a href="src/GHC.Driver.Session.html#line-1117" class="link">Source</a> <a href="#t:GhcLink" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:GhcLink:Eq:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Session.html">GHC.Driver.Session</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="GHC.html#t:GhcLink" title="GHC">GhcLink</a> -&gt; <a href="GHC.html#t:GhcLink" title="GHC">GhcLink</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="GHC.html#t:GhcLink" title="GHC">GhcLink</a> -&gt; <a href="GHC.html#t:GhcLink" title="GHC">GhcLink</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><a id="v:defaultObjectTarget" class="def">defaultObjectTarget</a> :: <a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a> -&gt; <a href="GHC.html#t:HscTarget" title="GHC">HscTarget</a> <a href="src/GHC.Driver.Session.html#defaultObjectTarget" class="link">Source</a> <a href="#v:defaultObjectTarget" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:parseDynamicFlags" class="def">parseDynamicFlags</a> :: <a href="GHC-Utils-Monad.html#t:MonadIO" title="GHC.Utils.Monad">MonadIO</a> m =&gt; <a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a> -&gt; [<a href="GHC.html#t:Located" title="GHC">Located</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>] -&gt; m (<a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a>, [<a href="GHC.html#t:Located" title="GHC">Located</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>], [<a href="GHC-Driver-CmdLine.html#t:Warn" title="GHC.Driver.CmdLine">Warn</a>]) <a href="src/GHC.html#parseDynamicFlags" class="link">Source</a> <a href="#v:parseDynamicFlags" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getSessionDynFlags" class="def">getSessionDynFlags</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m <a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a> <a href="src/GHC.Driver.Monad.html#getSessionDynFlags" class="link">Source</a> <a href="#v:getSessionDynFlags" class="selflink">#</a></p><div class="doc"><p>Grabs the DynFlags from the Session</p></div></div><div class="top"><p class="src"><a id="v:setSessionDynFlags" class="def">setSessionDynFlags</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a> -&gt; m () <a href="src/GHC.html#setSessionDynFlags" class="link">Source</a> <a href="#v:setSessionDynFlags" class="selflink">#</a></p><div class="doc"><p>Updates both the interactive and program DynFlags in a Session.
 This also reads the package database (unless it has already been
 read), and prepares the compilers knowledge about packages.  It can
 be called again to load new packages: just add new package flags to
 (packageFlags dflags).</p><p>Returns a list of new packages that may need to be linked in using
 the dynamic linker (see <code>linkPackages</code>) as a result of new package
 flags.  If you are not doing linking or doing static linking, you
 can ignore the list of packages returned.</p></div></div><div class="top"><p class="src"><a id="v:getProgramDynFlags" class="def">getProgramDynFlags</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m <a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a> <a href="src/GHC.html#getProgramDynFlags" class="link">Source</a> <a href="#v:getProgramDynFlags" class="selflink">#</a></p><div class="doc"><p>Returns the program <code><a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:setProgramDynFlags" class="def">setProgramDynFlags</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a> -&gt; m <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.html#setProgramDynFlags" class="link">Source</a> <a href="#v:setProgramDynFlags" class="selflink">#</a></p><div class="doc"><p>Sets the program <code><a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a></code>.  Note: this invalidates the internal
 cached module graph, causing more work to be done the next time
 <code><a href="GHC.html#v:load" title="GHC">load</a></code> is called.</p><p>Returns a boolean indicating if preload units have changed and need to be
 reloaded.</p></div></div><div class="top"><p class="src"><a id="v:setLogAction" class="def">setLogAction</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Driver-Session.html#t:LogAction" title="GHC.Driver.Session">LogAction</a> -&gt; m () <a href="src/GHC.html#setLogAction" class="link">Source</a> <a href="#v:setLogAction" class="selflink">#</a></p><div class="doc"><p>Set the action taken when the compiler produces a message.  This
 can also be accomplished using <code><a href="GHC.html#v:setProgramDynFlags" title="GHC">setProgramDynFlags</a></code>, but using
 <code><a href="GHC.html#v:setLogAction" title="GHC">setLogAction</a></code> avoids invalidating the cached module graph.</p></div></div><div class="top"><p class="src"><a id="v:getInteractiveDynFlags" class="def">getInteractiveDynFlags</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m <a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a> <a href="src/GHC.html#getInteractiveDynFlags" class="link">Source</a> <a href="#v:getInteractiveDynFlags" class="selflink">#</a></p><div class="doc"><p>Get the <code><a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a></code> used to evaluate interactive expressions.</p></div></div><div class="top"><p class="src"><a id="v:setInteractiveDynFlags" class="def">setInteractiveDynFlags</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a> -&gt; m () <a href="src/GHC.html#setInteractiveDynFlags" class="link">Source</a> <a href="#v:setInteractiveDynFlags" class="selflink">#</a></p><div class="doc"><p>Set the <code><a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a></code> used to evaluate interactive expressions.
 Note: this cannot be used for changes to packages.  Use
 <code><a href="GHC.html#v:setSessionDynFlags" title="GHC">setSessionDynFlags</a></code>, or <code><a href="GHC.html#v:setProgramDynFlags" title="GHC">setProgramDynFlags</a></code> and then copy the
 <code><a href="GHC.html#v:unitState" title="GHC">unitState</a></code> into the interactive <code>DynFlags</code>.</p></div></div><div class="top"><p class="src"><a id="v:interpretPackageEnv" class="def">interpretPackageEnv</a> :: <a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a> -&gt; <a href="GHC-Prelude.html#t:IO" title="GHC.Prelude">IO</a> <a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a> <a href="src/GHC.html#interpretPackageEnv" class="link">Source</a> <a href="#v:interpretPackageEnv" class="selflink">#</a></p><div class="doc"><p>Find the package environment (if one exists)</p><p>We interpret the package environment as a set of package flags; to be
 specific, if we find a package environment file like</p><pre>clear-package-db
global-package-db
package-db blah/package.conf.d
package-id id1
package-id id2</pre><p>we interpret this as</p><pre>[ -hide-all-packages
, -clear-package-db
, -global-package-db
, -package-db blah/package.conf.d
, -package-id id1
, -package-id id2
]</pre><p>There's also an older syntax alias for package-id, which is just an
 unadorned package id</p><pre>id1
id2</pre></div></div><a href="#g:4" id="g:4"><h1>Targets</h1></a><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Target" class="def">Target</a> <a href="src/GHC.Driver.Types.html#Target" class="link">Source</a> <a href="#t:Target" class="selflink">#</a></p><div class="doc"><p>A compilation target.</p><p>A target may be supplied with the actual text of the
 module.  If so, use this instead of the file contents (this
 is for use in an IDE where the file hasn't been saved by
 the user yet).</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Target" class="def">Target</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:targetId" class="def">targetId</a> :: !<a href="GHC.html#t:TargetId" title="GHC">TargetId</a></dfn><div class="doc"><p>module or filename</p></div></li><li><dfn class="src"><a id="v:targetAllowObjCode" class="def">targetAllowObjCode</a> :: !<a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></dfn><div class="doc"><p>object code allowed?</p></div></li><li><dfn class="src"><a id="v:targetContents" class="def">targetContents</a> :: !(<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (<a href="GHC-Driver-Types.html#t:InputFileBuffer" title="GHC.Driver.Types">InputFileBuffer</a>, <a href="../time/Data-Time-Clock.html#t:UTCTime" title="Data.Time.Clock">UTCTime</a>))</dfn><div class="doc"><p>Optional in-memory buffer containing the source code GHC should
 use for this target instead of reading it from disk.</p><p>Since GHC version 8.10 modules which require preprocessors such as
 Literate Haskell or CPP to run are also supported.</p><p>If a corresponding source file does not exist on disk this will
 result in a <code><a href="GHC-Driver-Types.html#t:SourceError" title="GHC.Driver.Types">SourceError</a></code> exception if <code>targetId = TargetModule _</code>
 is used. However together with <code>targetId = TargetFile _</code> GHC will
 not complain about the file missing.</p></div></li></ul></div></td></tr></table></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:Target">Instances</h4><details id="i:Target" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Target:Outputable:1"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC.html#t:Target" title="GHC">Target</a></span> <a href="src/GHC.Driver.Types.html#line-603" class="link">Source</a> <a href="#t:Target" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:Target:Outputable:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Types.html">GHC.Driver.Types</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC.html#t:Target" title="GHC">Target</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC.html#t:Target" title="GHC">Target</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:TargetId" class="def">TargetId</a> <a href="src/GHC.Driver.Types.html#TargetId" class="link">Source</a> <a href="#t:TargetId" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:TargetModule" class="def">TargetModule</a> <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a></td><td class="doc"><p>A module name: search for the file</p></td></tr><tr><td class="src"><a id="v:TargetFile" class="def">TargetFile</a> <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a> (<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:Phase" title="GHC">Phase</a>)</td><td class="doc"><p>A filename: preprocess &amp; parse it to find the module name.
 If specified, the Phase indicates how to compile this file
 (which phase to start from).  Nothing indicates the starting phase
 should be determined from the suffix of the filename.</p></td></tr></table></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:TargetId">Instances</h4><details id="i:TargetId" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:TargetId:Outputable:1"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC.html#t:TargetId" title="GHC">TargetId</a></span> <a href="src/GHC.Driver.Types.html#line-610" class="link">Source</a> <a href="#t:TargetId" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:TargetId:Outputable:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Types.html">GHC.Driver.Types</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC.html#t:TargetId" title="GHC">TargetId</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC.html#t:TargetId" title="GHC">TargetId</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:TargetId:Eq:2"></span> <a href="GHC-Prelude.html#t:Eq" title="GHC.Prelude">Eq</a> <a href="GHC.html#t:TargetId" title="GHC">TargetId</a></span> <a href="src/GHC.Driver.Types.html#line-595" class="link">Source</a> <a href="#t:TargetId" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:TargetId:Eq:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Types.html">GHC.Driver.Types</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="GHC.html#t:TargetId" title="GHC">TargetId</a> -&gt; <a href="GHC.html#t:TargetId" title="GHC">TargetId</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="GHC.html#t:TargetId" title="GHC">TargetId</a> -&gt; <a href="GHC.html#t:TargetId" title="GHC">TargetId</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Phase" class="def">Phase</a> <a href="src/GHC.Driver.Phases.html#Phase" class="link">Source</a> <a href="#t:Phase" class="selflink">#</a></p><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:Phase">Instances</h4><details id="i:Phase" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Phase:Show:1"></span> <a href="GHC-Prelude.html#t:Show" title="GHC.Prelude">Show</a> <a href="GHC.html#t:Phase" title="GHC">Phase</a></span> <a href="src/GHC.Driver.Phases.html#line-150" class="link">Source</a> <a href="#t:Phase" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:Phase:Show:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Phases.html">GHC.Driver.Phases</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; <a href="GHC.html#t:Phase" title="GHC">Phase</a> -&gt; <a href="GHC-Prelude.html#t:ShowS" title="GHC.Prelude">ShowS</a> <a href="../base/src/GHC.Show.html#showsPrec" class="link">Source</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="GHC.html#t:Phase" title="GHC">Phase</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> <a href="../base/src/GHC.Show.html#show" class="link">Source</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="GHC.html#t:Phase" title="GHC">Phase</a>] -&gt; <a href="GHC-Prelude.html#t:ShowS" title="GHC.Prelude">ShowS</a> <a href="../base/src/GHC.Show.html#showList" class="link">Source</a> <a href="#v:showList" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Phase:Outputable:2"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC.html#t:Phase" title="GHC">Phase</a></span> <a href="src/GHC.Driver.Phases.html#line-152" class="link">Source</a> <a href="#t:Phase" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:Phase:Outputable:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Phases.html">GHC.Driver.Phases</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC.html#t:Phase" title="GHC">Phase</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC.html#t:Phase" title="GHC">Phase</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Phase:Eq:3"></span> <a href="GHC-Prelude.html#t:Eq" title="GHC.Prelude">Eq</a> <a href="GHC.html#t:Phase" title="GHC">Phase</a></span> <a href="src/GHC.Driver.Phases.html#line-150" class="link">Source</a> <a href="#t:Phase" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:Phase:Eq:3"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Phases.html">GHC.Driver.Phases</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="GHC.html#t:Phase" title="GHC">Phase</a> -&gt; <a href="GHC.html#t:Phase" title="GHC">Phase</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="GHC.html#t:Phase" title="GHC">Phase</a> -&gt; <a href="GHC.html#t:Phase" title="GHC">Phase</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><a id="v:setTargets" class="def">setTargets</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; [<a href="GHC.html#t:Target" title="GHC">Target</a>] -&gt; m () <a href="src/GHC.html#setTargets" class="link">Source</a> <a href="#v:setTargets" class="selflink">#</a></p><div class="doc"><p>Sets the targets for this session.  Each target may be a module name
 or a filename.  The targets correspond to the set of root modules for
 the program/library.  Unloading the current program is achieved by
 setting the current set of targets to be empty, followed by <code><a href="GHC.html#v:load" title="GHC">load</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:getTargets" class="def">getTargets</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m [<a href="GHC.html#t:Target" title="GHC">Target</a>] <a href="src/GHC.html#getTargets" class="link">Source</a> <a href="#v:getTargets" class="selflink">#</a></p><div class="doc"><p>Returns the current set of targets</p></div></div><div class="top"><p class="src"><a id="v:addTarget" class="def">addTarget</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:Target" title="GHC">Target</a> -&gt; m () <a href="src/GHC.html#addTarget" class="link">Source</a> <a href="#v:addTarget" class="selflink">#</a></p><div class="doc"><p>Add another target.</p></div></div><div class="top"><p class="src"><a id="v:removeTarget" class="def">removeTarget</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:TargetId" title="GHC">TargetId</a> -&gt; m () <a href="src/GHC.html#removeTarget" class="link">Source</a> <a href="#v:removeTarget" class="selflink">#</a></p><div class="doc"><p>Remove a target</p></div></div><div class="top"><p class="src"><a id="v:guessTarget" class="def">guessTarget</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:Phase" title="GHC">Phase</a> -&gt; m <a href="GHC.html#t:Target" title="GHC">Target</a> <a href="src/GHC.html#guessTarget" class="link">Source</a> <a href="#v:guessTarget" class="selflink">#</a></p><div class="doc"><p>Attempts to guess what Target a string refers to.  This function
 implements the <code>--make</code>/GHCi command-line syntax for filenames:</p><ul><li>if the string looks like a Haskell source filename, then interpret it
     as such</li><li>if adding a .hs or .lhs suffix yields the name of an existing file,
     then use that</li><li>otherwise interpret the string as a module name</li></ul></div></div><a href="#g:5" id="g:5"><h1>Loading/compiling the program</h1></a><div class="top"><p class="src"><a id="v:depanal" class="def">depanal</a> <a href="src/GHC.Driver.Make.html#depanal" class="link">Source</a> <a href="#v:depanal" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">=&gt; [<a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a>]</td><td class="doc"><p>excluded modules</p></td></tr><tr><td class="src">-&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></td><td class="doc"><p>allow duplicate roots</p></td></tr><tr><td class="src">-&gt; m <a href="GHC.html#t:ModuleGraph" title="GHC">ModuleGraph</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="doc"><p>Perform a dependency analysis starting from the current targets
 and update the session with the new module graph.</p><p>Dependency analysis entails parsing the <code>import</code> directives and may
 therefore require running certain preprocessors.</p><p>Note that each <code><a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a></code> in the module graph caches its <code><a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a></code>.
 These <code><a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a></code> are determined by the <em>current</em> session <code><a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a></code> and the
 <code>OPTIONS</code> and <code>LANGUAGE</code> pragmas of the parsed module.  Thus if you want
 changes to the <code><a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a></code> to take effect you need to call this function
 again.
 In case of errors, just throw them.</p></div></div><div class="top"><p class="src"><a id="v:depanalE" class="def">depanalE</a> <a href="src/GHC.Driver.Make.html#depanalE" class="link">Source</a> <a href="#v:depanalE" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">=&gt; [<a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a>]</td><td class="doc"><p>excluded modules</p></td></tr><tr><td class="src">-&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></td><td class="doc"><p>allow duplicate roots</p></td></tr><tr><td class="src">-&gt; m (<a href="GHC-Utils-Error.html#t:ErrorMessages" title="GHC.Utils.Error">ErrorMessages</a>, <a href="GHC.html#t:ModuleGraph" title="GHC">ModuleGraph</a>)</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="doc"><p>Perform dependency analysis like in <code><a href="GHC.html#v:depanal" title="GHC">depanal</a></code>.
 In case of errors, the errors and an empty module graph are returned.</p></div></div><div class="top"><p class="src"><a id="v:load" class="def">load</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:LoadHowMuch" title="GHC">LoadHowMuch</a> -&gt; m <a href="GHC.html#t:SuccessFlag" title="GHC">SuccessFlag</a> <a href="src/GHC.Driver.Make.html#load" class="link">Source</a> <a href="#v:load" class="selflink">#</a></p><div class="doc"><p>Try to load the program.  See <code><a href="GHC.html#t:LoadHowMuch" title="GHC">LoadHowMuch</a></code> for the different modes.</p><p>This function implements the core of GHC's <code>--make</code> mode.  It preprocesses,
 compiles and loads the specified modules, avoiding re-compilation wherever
 possible.  Depending on the target (see <code><a href="GHC.html#v:hscTarget" title="GHC">hscTarget</a></code>) compiling
 and loading may result in files being created on disk.</p><p>Calls the <code><a href="GHC.html#v:defaultWarnErrLogger" title="GHC">defaultWarnErrLogger</a></code> after each compiling each module, whether
 successful or not.</p><p>If errors are encountered during dependency analysis, the module <code><a href="GHC.html#v:depanalE" title="GHC">depanalE</a></code>
 returns together with the errors an empty ModuleGraph.
 After processing this empty ModuleGraph, the errors of depanalE are thrown.
 All other errors are reported using the <code><a href="GHC.html#v:defaultWarnErrLogger" title="GHC">defaultWarnErrLogger</a></code>.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:LoadHowMuch" class="def">LoadHowMuch</a> <a href="src/GHC.Driver.Make.html#LoadHowMuch" class="link">Source</a> <a href="#t:LoadHowMuch" class="selflink">#</a></p><div class="doc"><p>Describes which modules of the module graph need to be loaded.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:LoadAllTargets" class="def">LoadAllTargets</a></td><td class="doc"><p>Load all targets and its dependencies.</p></td></tr><tr><td class="src"><a id="v:LoadUpTo" class="def">LoadUpTo</a> <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a></td><td class="doc"><p>Load only the given module and its dependencies.</p></td></tr><tr><td class="src"><a id="v:LoadDependenciesOf" class="def">LoadDependenciesOf</a> <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a></td><td class="doc"><p>Load only the dependencies of the given module, but not the module
 itself.</p></td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:InteractiveImport" class="def">InteractiveImport</a> <a href="src/GHC.Driver.Types.html#InteractiveImport" class="link">Source</a> <a href="#t:InteractiveImport" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:IIDecl" class="def">IIDecl</a> (<a href="GHC-Hs-ImpExp.html#t:ImportDecl" title="GHC.Hs.ImpExp">ImportDecl</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a>)</td><td class="doc"><p>Bring the exports of a particular module
 (filtered by an import decl) into scope</p></td></tr><tr><td class="src"><a id="v:IIModule" class="def">IIModule</a> <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a></td><td class="doc"><p>Bring into scope the entire top-level envt of
 of this module, including the things imported
 into it.</p></td></tr></table></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:InteractiveImport">Instances</h4><details id="i:InteractiveImport" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:InteractiveImport:Outputable:1"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC.html#t:InteractiveImport" title="GHC">InteractiveImport</a></span> <a href="src/GHC.Driver.Types.html#line-1905" class="link">Source</a> <a href="#t:InteractiveImport" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:InteractiveImport:Outputable:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Types.html">GHC.Driver.Types</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC.html#t:InteractiveImport" title="GHC">InteractiveImport</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC.html#t:InteractiveImport" title="GHC">InteractiveImport</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:SuccessFlag" class="def">SuccessFlag</a> <a href="src/GHC.Types.Basic.html#SuccessFlag" class="link">Source</a> <a href="#t:SuccessFlag" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Succeeded" class="def">Succeeded</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Failed" class="def">Failed</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:SuccessFlag">Instances</h4><details id="i:SuccessFlag" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:SuccessFlag:Outputable:1"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC.html#t:SuccessFlag" title="GHC">SuccessFlag</a></span> <a href="src/GHC.Types.Basic.html#line-1203" class="link">Source</a> <a href="#t:SuccessFlag" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:SuccessFlag:Outputable:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-Basic.html">GHC.Types.Basic</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC.html#t:SuccessFlag" title="GHC">SuccessFlag</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC.html#t:SuccessFlag" title="GHC">SuccessFlag</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><a id="v:succeeded" class="def">succeeded</a> :: <a href="GHC.html#t:SuccessFlag" title="GHC">SuccessFlag</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Types.Basic.html#succeeded" class="link">Source</a> <a href="#v:succeeded" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:failed" class="def">failed</a> :: <a href="GHC.html#t:SuccessFlag" title="GHC">SuccessFlag</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Types.Basic.html#failed" class="link">Source</a> <a href="#v:failed" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:defaultWarnErrLogger" class="def">defaultWarnErrLogger</a> :: <a href="GHC.html#t:WarnErrLogger" title="GHC">WarnErrLogger</a> <a href="src/GHC.Driver.Monad.html#defaultWarnErrLogger" class="link">Source</a> <a href="#v:defaultWarnErrLogger" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:WarnErrLogger" class="def">WarnErrLogger</a> = <span class="keyword">forall</span> m. <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Driver-Types.html#t:SourceError" title="GHC.Driver.Types">SourceError</a> -&gt; m () <a href="src/GHC.Driver.Monad.html#WarnErrLogger" class="link">Source</a> <a href="#t:WarnErrLogger" class="selflink">#</a></p><div class="doc"><p>A function called to log warnings and errors.</p></div></div><div class="top"><p class="src"><a id="v:workingDirectoryChanged" class="def">workingDirectoryChanged</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m () <a href="src/GHC.html#workingDirectoryChanged" class="link">Source</a> <a href="#v:workingDirectoryChanged" class="selflink">#</a></p><div class="doc"><p>Inform GHC that the working directory has changed.  GHC will flush
 its cache of module locations, since it may no longer be valid.</p><p>Note: Before changing the working directory make sure all threads running
 in the same session have stopped.  If you change the working directory,
 you should also unload the current program (set targets to empty,
 followed by load).</p></div></div><div class="top"><p class="src"><a id="v:parseModule" class="def">parseModule</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a> -&gt; m <a href="GHC.html#t:ParsedModule" title="GHC">ParsedModule</a> <a href="src/GHC.html#parseModule" class="link">Source</a> <a href="#v:parseModule" class="selflink">#</a></p><div class="doc"><p>Parse a module.</p><p>Throws a <code><a href="GHC-Driver-Types.html#t:SourceError" title="GHC.Driver.Types">SourceError</a></code> on parse error.</p></div></div><div class="top"><p class="src"><a id="v:typecheckModule" class="def">typecheckModule</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:ParsedModule" title="GHC">ParsedModule</a> -&gt; m <a href="GHC.html#t:TypecheckedModule" title="GHC">TypecheckedModule</a> <a href="src/GHC.html#typecheckModule" class="link">Source</a> <a href="#v:typecheckModule" class="selflink">#</a></p><div class="doc"><p>Typecheck and rename a parsed module.</p><p>Throws a <code><a href="GHC-Driver-Types.html#t:SourceError" title="GHC.Driver.Types">SourceError</a></code> if either fails.</p></div></div><div class="top"><p class="src"><a id="v:desugarModule" class="def">desugarModule</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:TypecheckedModule" title="GHC">TypecheckedModule</a> -&gt; m <a href="GHC.html#t:DesugaredModule" title="GHC">DesugaredModule</a> <a href="src/GHC.html#desugarModule" class="link">Source</a> <a href="#v:desugarModule" class="selflink">#</a></p><div class="doc"><p>Desugar a typechecked module.</p></div></div><div class="top"><p class="src"><a id="v:loadModule" class="def">loadModule</a> :: (<a href="GHC.html#t:TypecheckedMod" title="GHC">TypecheckedMod</a> mod, <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m) =&gt; mod -&gt; m mod <a href="src/GHC.html#loadModule" class="link">Source</a> <a href="#v:loadModule" class="selflink">#</a></p><div class="doc"><p>Load a module.  Input doesn't need to be desugared.</p><p>A module must be loaded before dependent modules can be typechecked.  This
 always includes generating a <code><a href="GHC.html#t:ModIface" title="GHC">ModIface</a></code> and, depending on the
 <code>DynFlags</code>'s <code><a href="GHC.html#v:hscTarget" title="GHC">hscTarget</a></code>, may also include code generation.</p><p>This function will always cause recompilation and will always overwrite
 previous compilation results (potentially files on disk).</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ParsedModule" class="def">ParsedModule</a> <a href="src/GHC.html#ParsedModule" class="link">Source</a> <a href="#t:ParsedModule" class="selflink">#</a></p><div class="doc"><p>The result of successful parsing.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ParsedModule" class="def">ParsedModule</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:pm_mod_summary" class="def">pm_mod_summary</a> :: <a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:pm_parsed_source" class="def">pm_parsed_source</a> :: <a href="GHC.html#t:ParsedSource" title="GHC">ParsedSource</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:pm_extra_src_files" class="def">pm_extra_src_files</a> :: [<a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a>]</dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:pm_annotations" class="def">pm_annotations</a> :: <a href="GHC.html#t:ApiAnns" title="GHC">ApiAnns</a></dfn><div class="doc empty">&nbsp;</div></li></ul></div></td></tr></table></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:ParsedModule">Instances</h4><details id="i:ParsedModule" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:ParsedModule:ParsedMod:1"></span> <a href="GHC.html#t:ParsedMod" title="GHC">ParsedMod</a> <a href="GHC.html#t:ParsedModule" title="GHC">ParsedModule</a></span> <a href="src/GHC.html#line-870" class="link">Source</a> <a href="#t:ParsedModule" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:ParsedModule:ParsedMod:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC.html">GHC</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:modSummary">modSummary</a> :: <a href="GHC.html#t:ParsedModule" title="GHC">ParsedModule</a> -&gt; <a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a></p><p class="src"><a href="#v:parsedSource">parsedSource</a> :: <a href="GHC.html#t:ParsedModule" title="GHC">ParsedModule</a> -&gt; <a href="GHC.html#t:ParsedSource" title="GHC">ParsedSource</a> <a href="src/GHC.html#parsedSource" class="link">Source</a> <a href="#v:parsedSource" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:TypecheckedModule" class="def">TypecheckedModule</a> <a href="src/GHC.html#TypecheckedModule" class="link">Source</a> <a href="#t:TypecheckedModule" class="selflink">#</a></p><div class="doc"><p>The result of successful typechecking.  It also contains the parser
   result.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:TypecheckedModule" class="def">TypecheckedModule</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:tm_parsed_module" class="def">tm_parsed_module</a> :: <a href="GHC.html#t:ParsedModule" title="GHC">ParsedModule</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:tm_renamed_source" class="def">tm_renamed_source</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:RenamedSource" title="GHC">RenamedSource</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:tm_typechecked_source" class="def">tm_typechecked_source</a> :: <a href="GHC.html#t:TypecheckedSource" title="GHC">TypecheckedSource</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:tm_checked_module_info" class="def">tm_checked_module_info</a> :: <a href="GHC.html#t:ModuleInfo" title="GHC">ModuleInfo</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:tm_internals_" class="def">tm_internals_</a> :: (<a href="GHC-Tc-Types.html#t:TcGblEnv" title="GHC.Tc.Types">TcGblEnv</a>, <a href="GHC-Driver-Types.html#t:ModDetails" title="GHC.Driver.Types">ModDetails</a>)</dfn><div class="doc empty">&nbsp;</div></li></ul></div></td></tr></table></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:TypecheckedModule">Instances</h4><details id="i:TypecheckedModule" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:TypecheckedModule:ParsedMod:1"></span> <a href="GHC.html#t:ParsedMod" title="GHC">ParsedMod</a> <a href="GHC.html#t:TypecheckedModule" title="GHC">TypecheckedModule</a></span> <a href="src/GHC.html#line-884" class="link">Source</a> <a href="#t:TypecheckedModule" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:TypecheckedModule:ParsedMod:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC.html">GHC</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:modSummary">modSummary</a> :: <a href="GHC.html#t:TypecheckedModule" title="GHC">TypecheckedModule</a> -&gt; <a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a></p><p class="src"><a href="#v:parsedSource">parsedSource</a> :: <a href="GHC.html#t:TypecheckedModule" title="GHC">TypecheckedModule</a> -&gt; <a href="GHC.html#t:ParsedSource" title="GHC">ParsedSource</a> <a href="src/GHC.html#parsedSource" class="link">Source</a> <a href="#v:parsedSource" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:TypecheckedModule:TypecheckedMod:2"></span> <a href="GHC.html#t:TypecheckedMod" title="GHC">TypecheckedMod</a> <a href="GHC.html#t:TypecheckedModule" title="GHC">TypecheckedModule</a></span> <a href="src/GHC.html#line-888" class="link">Source</a> <a href="#t:TypecheckedModule" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:TypecheckedModule:TypecheckedMod:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC.html">GHC</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:renamedSource">renamedSource</a> :: <a href="GHC.html#t:TypecheckedModule" title="GHC">TypecheckedModule</a> -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:RenamedSource" title="GHC">RenamedSource</a> <a href="src/GHC.html#renamedSource" class="link">Source</a> <a href="#v:renamedSource" class="selflink">#</a></p><p class="src"><a href="#v:typecheckedSource">typecheckedSource</a> :: <a href="GHC.html#t:TypecheckedModule" title="GHC">TypecheckedModule</a> -&gt; <a href="GHC.html#t:TypecheckedSource" title="GHC">TypecheckedSource</a> <a href="src/GHC.html#typecheckedSource" class="link">Source</a> <a href="#v:typecheckedSource" class="selflink">#</a></p><p class="src"><a href="#v:moduleInfo">moduleInfo</a> :: <a href="GHC.html#t:TypecheckedModule" title="GHC">TypecheckedModule</a> -&gt; <a href="GHC.html#t:ModuleInfo" title="GHC">ModuleInfo</a> <a href="src/GHC.html#moduleInfo" class="link">Source</a> <a href="#v:moduleInfo" class="selflink">#</a></p><p class="src"><a href="#v:tm_internals">tm_internals</a> :: <a href="GHC.html#t:TypecheckedModule" title="GHC">TypecheckedModule</a> -&gt; (<a href="GHC-Tc-Types.html#t:TcGblEnv" title="GHC.Tc.Types">TcGblEnv</a>, <a href="GHC-Driver-Types.html#t:ModDetails" title="GHC.Driver.Types">ModDetails</a>)</p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:DesugaredModule" class="def">DesugaredModule</a> <a href="src/GHC.html#DesugaredModule" class="link">Source</a> <a href="#t:DesugaredModule" class="selflink">#</a></p><div class="doc"><p>The result of successful desugaring (i.e., translation to core).  Also
  contains all the information of a typechecked module.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:DesugaredModule" class="def">DesugaredModule</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:dm_typechecked_module" class="def">dm_typechecked_module</a> :: <a href="GHC.html#t:TypecheckedModule" title="GHC">TypecheckedModule</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:dm_core_module" class="def">dm_core_module</a> :: <a href="GHC-Driver-Types.html#t:ModGuts" title="GHC.Driver.Types">ModGuts</a></dfn><div class="doc empty">&nbsp;</div></li></ul></div></td></tr></table></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:DesugaredModule">Instances</h4><details id="i:DesugaredModule" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:DesugaredModule:ParsedMod:1"></span> <a href="GHC.html#t:ParsedMod" title="GHC">ParsedMod</a> <a href="GHC.html#t:DesugaredModule" title="GHC">DesugaredModule</a></span> <a href="src/GHC.html#line-901" class="link">Source</a> <a href="#t:DesugaredModule" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:DesugaredModule:ParsedMod:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC.html">GHC</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:modSummary">modSummary</a> :: <a href="GHC.html#t:DesugaredModule" title="GHC">DesugaredModule</a> -&gt; <a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a></p><p class="src"><a href="#v:parsedSource">parsedSource</a> :: <a href="GHC.html#t:DesugaredModule" title="GHC">DesugaredModule</a> -&gt; <a href="GHC.html#t:ParsedSource" title="GHC">ParsedSource</a> <a href="src/GHC.html#parsedSource" class="link">Source</a> <a href="#v:parsedSource" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:DesugaredModule:TypecheckedMod:2"></span> <a href="GHC.html#t:TypecheckedMod" title="GHC">TypecheckedMod</a> <a href="GHC.html#t:DesugaredModule" title="GHC">DesugaredModule</a></span> <a href="src/GHC.html#line-905" class="link">Source</a> <a href="#t:DesugaredModule" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:DesugaredModule:TypecheckedMod:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC.html">GHC</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:renamedSource">renamedSource</a> :: <a href="GHC.html#t:DesugaredModule" title="GHC">DesugaredModule</a> -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:RenamedSource" title="GHC">RenamedSource</a> <a href="src/GHC.html#renamedSource" class="link">Source</a> <a href="#v:renamedSource" class="selflink">#</a></p><p class="src"><a href="#v:typecheckedSource">typecheckedSource</a> :: <a href="GHC.html#t:DesugaredModule" title="GHC">DesugaredModule</a> -&gt; <a href="GHC.html#t:TypecheckedSource" title="GHC">TypecheckedSource</a> <a href="src/GHC.html#typecheckedSource" class="link">Source</a> <a href="#v:typecheckedSource" class="selflink">#</a></p><p class="src"><a href="#v:moduleInfo">moduleInfo</a> :: <a href="GHC.html#t:DesugaredModule" title="GHC">DesugaredModule</a> -&gt; <a href="GHC.html#t:ModuleInfo" title="GHC">ModuleInfo</a> <a href="src/GHC.html#moduleInfo" class="link">Source</a> <a href="#v:moduleInfo" class="selflink">#</a></p><p class="src"><a href="#v:tm_internals">tm_internals</a> :: <a href="GHC.html#t:DesugaredModule" title="GHC">DesugaredModule</a> -&gt; (<a href="GHC-Tc-Types.html#t:TcGblEnv" title="GHC.Tc.Types">TcGblEnv</a>, <a href="GHC-Driver-Types.html#t:ModDetails" title="GHC.Driver.Types">ModDetails</a>)</p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:TypecheckedSource" class="def">TypecheckedSource</a> = <a href="GHC-Hs-Binds.html#t:LHsBinds" title="GHC.Hs.Binds">LHsBinds</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a> <a href="src/GHC.html#TypecheckedSource" class="link">Source</a> <a href="#t:TypecheckedSource" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:ParsedSource" class="def">ParsedSource</a> = <a href="GHC.html#t:Located" title="GHC">Located</a> <a href="GHC-Hs.html#t:HsModule" title="GHC.Hs">HsModule</a> <a href="src/GHC.html#ParsedSource" class="link">Source</a> <a href="#t:ParsedSource" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:RenamedSource" class="def">RenamedSource</a> = (<a href="GHC-Hs-Decls.html#t:HsGroup" title="GHC.Hs.Decls">HsGroup</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a>, [<a href="GHC-Hs-ImpExp.html#t:LImportDecl" title="GHC.Hs.ImpExp">LImportDecl</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a>], <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> [(<a href="GHC-Hs-ImpExp.html#t:LIE" title="GHC.Hs.ImpExp">LIE</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a>, <a href="GHC-Types-Avail.html#t:Avails" title="GHC.Types.Avail">Avails</a>)], <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Hs-Doc.html#t:LHsDocString" title="GHC.Hs.Doc">LHsDocString</a>) <a href="src/GHC.html#RenamedSource" class="link">Source</a> <a href="#t:RenamedSource" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="GHC.html#t:ParsedMod" title="GHC">ParsedMod</a> m =&gt; <a id="t:TypecheckedMod" class="def">TypecheckedMod</a> m <a href="src/GHC.html#TypecheckedMod" class="link">Source</a> <a href="#t:TypecheckedMod" class="selflink">#</a></p><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="GHC.html#v:renamedSource" title="GHC">renamedSource</a>, <a href="GHC.html#v:typecheckedSource" title="GHC">typecheckedSource</a>, <a href="GHC.html#v:moduleInfo" title="GHC">moduleInfo</a>, tm_internals</p></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:TypecheckedMod">Instances</h4><details id="i:TypecheckedMod" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:TypecheckedMod:TypecheckedMod:1"></span> <a href="GHC.html#t:TypecheckedMod" title="GHC">TypecheckedMod</a> <a href="GHC.html#t:DesugaredModule" title="GHC">DesugaredModule</a></span> <a href="src/GHC.html#line-905" class="link">Source</a> <a href="#t:TypecheckedMod" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:ic:TypecheckedMod:TypecheckedMod:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC.html">GHC</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:renamedSource">renamedSource</a> :: <a href="GHC.html#t:DesugaredModule" title="GHC">DesugaredModule</a> -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:RenamedSource" title="GHC">RenamedSource</a> <a href="src/GHC.html#renamedSource" class="link">Source</a> <a href="#v:renamedSource" class="selflink">#</a></p><p class="src"><a href="#v:typecheckedSource">typecheckedSource</a> :: <a href="GHC.html#t:DesugaredModule" title="GHC">DesugaredModule</a> -&gt; <a href="GHC.html#t:TypecheckedSource" title="GHC">TypecheckedSource</a> <a href="src/GHC.html#typecheckedSource" class="link">Source</a> <a href="#v:typecheckedSource" class="selflink">#</a></p><p class="src"><a href="#v:moduleInfo">moduleInfo</a> :: <a href="GHC.html#t:DesugaredModule" title="GHC">DesugaredModule</a> -&gt; <a href="GHC.html#t:ModuleInfo" title="GHC">ModuleInfo</a> <a href="src/GHC.html#moduleInfo" class="link">Source</a> <a href="#v:moduleInfo" class="selflink">#</a></p><p class="src"><a href="#v:tm_internals">tm_internals</a> :: <a href="GHC.html#t:DesugaredModule" title="GHC">DesugaredModule</a> -&gt; (<a href="GHC-Tc-Types.html#t:TcGblEnv" title="GHC.Tc.Types">TcGblEnv</a>, <a href="GHC-Driver-Types.html#t:ModDetails" title="GHC.Driver.Types">ModDetails</a>)</p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:TypecheckedMod:TypecheckedMod:2"></span> <a href="GHC.html#t:TypecheckedMod" title="GHC">TypecheckedMod</a> <a href="GHC.html#t:TypecheckedModule" title="GHC">TypecheckedModule</a></span> <a href="src/GHC.html#line-888" class="link">Source</a> <a href="#t:TypecheckedMod" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:ic:TypecheckedMod:TypecheckedMod:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC.html">GHC</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:renamedSource">renamedSource</a> :: <a href="GHC.html#t:TypecheckedModule" title="GHC">TypecheckedModule</a> -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:RenamedSource" title="GHC">RenamedSource</a> <a href="src/GHC.html#renamedSource" class="link">Source</a> <a href="#v:renamedSource" class="selflink">#</a></p><p class="src"><a href="#v:typecheckedSource">typecheckedSource</a> :: <a href="GHC.html#t:TypecheckedModule" title="GHC">TypecheckedModule</a> -&gt; <a href="GHC.html#t:TypecheckedSource" title="GHC">TypecheckedSource</a> <a href="src/GHC.html#typecheckedSource" class="link">Source</a> <a href="#v:typecheckedSource" class="selflink">#</a></p><p class="src"><a href="#v:moduleInfo">moduleInfo</a> :: <a href="GHC.html#t:TypecheckedModule" title="GHC">TypecheckedModule</a> -&gt; <a href="GHC.html#t:ModuleInfo" title="GHC">ModuleInfo</a> <a href="src/GHC.html#moduleInfo" class="link">Source</a> <a href="#v:moduleInfo" class="selflink">#</a></p><p class="src"><a href="#v:tm_internals">tm_internals</a> :: <a href="GHC.html#t:TypecheckedModule" title="GHC">TypecheckedModule</a> -&gt; (<a href="GHC-Tc-Types.html#t:TcGblEnv" title="GHC.Tc.Types">TcGblEnv</a>, <a href="GHC-Driver-Types.html#t:ModDetails" title="GHC.Driver.Types">ModDetails</a>)</p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:ParsedMod" class="def">ParsedMod</a> m <a href="src/GHC.html#ParsedMod" class="link">Source</a> <a href="#t:ParsedMod" class="selflink">#</a></p><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src">modSummary, <a href="GHC.html#v:parsedSource" title="GHC">parsedSource</a></p></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:ParsedMod">Instances</h4><details id="i:ParsedMod" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:ParsedMod:ParsedMod:1"></span> <a href="GHC.html#t:ParsedMod" title="GHC">ParsedMod</a> <a href="GHC.html#t:DesugaredModule" title="GHC">DesugaredModule</a></span> <a href="src/GHC.html#line-901" class="link">Source</a> <a href="#t:ParsedMod" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:ic:ParsedMod:ParsedMod:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC.html">GHC</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:modSummary">modSummary</a> :: <a href="GHC.html#t:DesugaredModule" title="GHC">DesugaredModule</a> -&gt; <a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a></p><p class="src"><a href="#v:parsedSource">parsedSource</a> :: <a href="GHC.html#t:DesugaredModule" title="GHC">DesugaredModule</a> -&gt; <a href="GHC.html#t:ParsedSource" title="GHC">ParsedSource</a> <a href="src/GHC.html#parsedSource" class="link">Source</a> <a href="#v:parsedSource" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:ParsedMod:ParsedMod:2"></span> <a href="GHC.html#t:ParsedMod" title="GHC">ParsedMod</a> <a href="GHC.html#t:ParsedModule" title="GHC">ParsedModule</a></span> <a href="src/GHC.html#line-870" class="link">Source</a> <a href="#t:ParsedMod" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:ic:ParsedMod:ParsedMod:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC.html">GHC</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:modSummary">modSummary</a> :: <a href="GHC.html#t:ParsedModule" title="GHC">ParsedModule</a> -&gt; <a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a></p><p class="src"><a href="#v:parsedSource">parsedSource</a> :: <a href="GHC.html#t:ParsedModule" title="GHC">ParsedModule</a> -&gt; <a href="GHC.html#t:ParsedSource" title="GHC">ParsedSource</a> <a href="src/GHC.html#parsedSource" class="link">Source</a> <a href="#v:parsedSource" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:ParsedMod:ParsedMod:3"></span> <a href="GHC.html#t:ParsedMod" title="GHC">ParsedMod</a> <a href="GHC.html#t:TypecheckedModule" title="GHC">TypecheckedModule</a></span> <a href="src/GHC.html#line-884" class="link">Source</a> <a href="#t:ParsedMod" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:ic:ParsedMod:ParsedMod:3"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC.html">GHC</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:modSummary">modSummary</a> :: <a href="GHC.html#t:TypecheckedModule" title="GHC">TypecheckedModule</a> -&gt; <a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a></p><p class="src"><a href="#v:parsedSource">parsedSource</a> :: <a href="GHC.html#t:TypecheckedModule" title="GHC">TypecheckedModule</a> -&gt; <a href="GHC.html#t:ParsedSource" title="GHC">ParsedSource</a> <a href="src/GHC.html#parsedSource" class="link">Source</a> <a href="#v:parsedSource" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><a id="v:moduleInfo" class="def">moduleInfo</a> :: <a href="GHC.html#t:TypecheckedMod" title="GHC">TypecheckedMod</a> m =&gt; m -&gt; <a href="GHC.html#t:ModuleInfo" title="GHC">ModuleInfo</a> <a href="src/GHC.html#moduleInfo" class="link">Source</a> <a href="#v:moduleInfo" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:renamedSource" class="def">renamedSource</a> :: <a href="GHC.html#t:TypecheckedMod" title="GHC">TypecheckedMod</a> m =&gt; m -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:RenamedSource" title="GHC">RenamedSource</a> <a href="src/GHC.html#renamedSource" class="link">Source</a> <a href="#v:renamedSource" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:typecheckedSource" class="def">typecheckedSource</a> :: <a href="GHC.html#t:TypecheckedMod" title="GHC">TypecheckedMod</a> m =&gt; m -&gt; <a href="GHC.html#t:TypecheckedSource" title="GHC">TypecheckedSource</a> <a href="src/GHC.html#typecheckedSource" class="link">Source</a> <a href="#v:typecheckedSource" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:parsedSource" class="def">parsedSource</a> :: <a href="GHC.html#t:ParsedMod" title="GHC">ParsedMod</a> m =&gt; m -&gt; <a href="GHC.html#t:ParsedSource" title="GHC">ParsedSource</a> <a href="src/GHC.html#parsedSource" class="link">Source</a> <a href="#v:parsedSource" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:coreModule" class="def">coreModule</a> :: DesugaredMod m =&gt; m -&gt; <a href="GHC-Driver-Types.html#t:ModGuts" title="GHC.Driver.Types">ModGuts</a> <a href="src/GHC.html#coreModule" class="link">Source</a> <a href="#v:coreModule" class="selflink">#</a></p></div><a href="#g:6" id="g:6"><h2>Compiling to Core</h2></a><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:CoreModule" class="def">CoreModule</a> <a href="src/GHC.html#CoreModule" class="link">Source</a> <a href="#t:CoreModule" class="selflink">#</a></p><div class="doc"><p>A CoreModule consists of just the fields of a <code><a href="GHC-Driver-Types.html#t:ModGuts" title="GHC.Driver.Types">ModGuts</a></code> that are needed for
 the <code><a href="GHC.html#v:compileToCoreModule" title="GHC">compileToCoreModule</a></code> interface.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:CoreModule" class="def">CoreModule</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:cm_module" class="def">cm_module</a> :: !<a href="GHC.html#t:Module" title="GHC">Module</a></dfn><div class="doc"><p>Module name</p></div></li><li><dfn class="src"><a id="v:cm_types" class="def">cm_types</a> :: !<a href="GHC-Driver-Types.html#t:TypeEnv" title="GHC.Driver.Types">TypeEnv</a></dfn><div class="doc"><p>Type environment for types declared in this module</p></div></li><li><dfn class="src"><a id="v:cm_binds" class="def">cm_binds</a> :: <a href="GHC-Core.html#t:CoreProgram" title="GHC.Core">CoreProgram</a></dfn><div class="doc"><p>Declarations</p></div></li><li><dfn class="src"><a id="v:cm_safe" class="def">cm_safe</a> :: <a href="GHC.html#t:SafeHaskellMode" title="GHC">SafeHaskellMode</a></dfn><div class="doc"><p>Safe Haskell mode</p></div></li></ul></div></td></tr></table></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:CoreModule">Instances</h4><details id="i:CoreModule" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:CoreModule:Outputable:1"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC.html#t:CoreModule" title="GHC">CoreModule</a></span> <a href="src/GHC.html#line-1068" class="link">Source</a> <a href="#t:CoreModule" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:CoreModule:Outputable:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC.html">GHC</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC.html#t:CoreModule" title="GHC">CoreModule</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC.html#t:CoreModule" title="GHC">CoreModule</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><a id="v:compileToCoreModule" class="def">compileToCoreModule</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a> -&gt; m <a href="GHC.html#t:CoreModule" title="GHC">CoreModule</a> <a href="src/GHC.html#compileToCoreModule" class="link">Source</a> <a href="#v:compileToCoreModule" class="selflink">#</a></p><div class="doc"><p>This is the way to get access to the Core bindings corresponding
 to a module. <code>compileToCore</code> parses, typechecks, and
 desugars the module, then returns the resulting Core module (consisting of
 the module name, type declarations, and function declarations) if
 successful.</p></div></div><div class="top"><p class="src"><a id="v:compileToCoreSimplified" class="def">compileToCoreSimplified</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a> -&gt; m <a href="GHC.html#t:CoreModule" title="GHC">CoreModule</a> <a href="src/GHC.html#compileToCoreSimplified" class="link">Source</a> <a href="#v:compileToCoreSimplified" class="selflink">#</a></p><div class="doc"><p>Like compileToCoreModule, but invokes the simplifier, so
 as to return simplified and tidied Core.</p></div></div><a href="#g:7" id="g:7"><h1>Inspecting the module structure of the program</h1></a><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ModuleGraph" class="def">ModuleGraph</a> <a href="src/GHC.Driver.Types.html#ModuleGraph" class="link">Source</a> <a href="#t:ModuleGraph" class="selflink">#</a></p><div class="doc"><p>A ModuleGraph contains all the nodes from the home package (only).
 There will be a node for each source module, plus a node for each hi-boot
 module.</p><p>The graph is not necessarily stored in topologically-sorted order.  Use
 <code><a href="GHC.html#v:topSortModuleGraph" title="GHC">topSortModuleGraph</a></code> and <code><a href="GHC-Data-Graph-Directed.html#v:flattenSCC" title="GHC.Data.Graph.Directed">flattenSCC</a></code> to achieve this.</p></div></div><div class="top"><p class="src"><a id="v:emptyMG" class="def">emptyMG</a> :: <a href="GHC.html#t:ModuleGraph" title="GHC">ModuleGraph</a> <a href="src/GHC.Driver.Types.html#emptyMG" class="link">Source</a> <a href="#v:emptyMG" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:mapMG" class="def">mapMG</a> :: (<a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a> -&gt; <a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a>) -&gt; <a href="GHC.html#t:ModuleGraph" title="GHC">ModuleGraph</a> -&gt; <a href="GHC.html#t:ModuleGraph" title="GHC">ModuleGraph</a> <a href="src/GHC.Driver.Types.html#mapMG" class="link">Source</a> <a href="#v:mapMG" class="selflink">#</a></p><div class="doc"><p>Map a function <code>f</code> over all the <code>ModSummaries</code>.
 To preserve invariants <code>f</code> can't change the isBoot status.</p></div></div><div class="top"><p class="src"><a id="v:mkModuleGraph" class="def">mkModuleGraph</a> :: [<a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a>] -&gt; <a href="GHC.html#t:ModuleGraph" title="GHC">ModuleGraph</a> <a href="src/GHC.Driver.Types.html#mkModuleGraph" class="link">Source</a> <a href="#v:mkModuleGraph" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:mgModSummaries" class="def">mgModSummaries</a> :: <a href="GHC.html#t:ModuleGraph" title="GHC">ModuleGraph</a> -&gt; [<a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a>] <a href="src/GHC.Driver.Types.html#mgModSummaries" class="link">Source</a> <a href="#v:mgModSummaries" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:mgLookupModule" class="def">mgLookupModule</a> :: <a href="GHC.html#t:ModuleGraph" title="GHC">ModuleGraph</a> -&gt; <a href="GHC.html#t:Module" title="GHC">Module</a> -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a> <a href="src/GHC.Driver.Types.html#mgLookupModule" class="link">Source</a> <a href="#v:mgLookupModule" class="selflink">#</a></p><div class="doc"><p>Look up a ModSummary in the ModuleGraph</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ModSummary" class="def">ModSummary</a> <a href="src/GHC.Driver.Types.html#ModSummary" class="link">Source</a> <a href="#t:ModSummary" class="selflink">#</a></p><div class="doc"><p>A single node in a <code><a href="GHC.html#t:ModuleGraph" title="GHC">ModuleGraph</a></code>. The nodes of the module graph
 are one of:</p><ul><li>A regular Haskell source module</li><li>A hi-boot source module</li></ul></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ModSummary" class="def">ModSummary</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:ms_mod" class="def">ms_mod</a> :: <a href="GHC.html#t:Module" title="GHC">Module</a></dfn><div class="doc"><p>Identity of the module</p></div></li><li><dfn class="src"><a id="v:ms_hsc_src" class="def">ms_hsc_src</a> :: <a href="GHC-Driver-Types.html#t:HscSource" title="GHC.Driver.Types">HscSource</a></dfn><div class="doc"><p>The module source either plain Haskell or hs-boot</p></div></li><li><dfn class="src"><a id="v:ms_location" class="def">ms_location</a> :: <a href="GHC.html#t:ModLocation" title="GHC">ModLocation</a></dfn><div class="doc"><p>Location of the various files belonging to the module</p></div></li><li><dfn class="src"><a id="v:ms_hs_date" class="def">ms_hs_date</a> :: <a href="../time/Data-Time-Clock.html#t:UTCTime" title="Data.Time.Clock">UTCTime</a></dfn><div class="doc"><p>Timestamp of source file</p></div></li><li><dfn class="src"><a id="v:ms_obj_date" class="def">ms_obj_date</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="../time/Data-Time-Clock.html#t:UTCTime" title="Data.Time.Clock">UTCTime</a></dfn><div class="doc"><p>Timestamp of object, if we have one</p></div></li><li><dfn class="src"><a id="v:ms_iface_date" class="def">ms_iface_date</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="../time/Data-Time-Clock.html#t:UTCTime" title="Data.Time.Clock">UTCTime</a></dfn><div class="doc"><p>Timestamp of hi file, if we *only* are typechecking (it is
 <code><a href="GHC-Prelude.html#v:Nothing" title="GHC.Prelude">Nothing</a></code> otherwise.
 See Note [Recompilation checking in -fno-code mode] and #9243</p></div></li><li><dfn class="src"><a id="v:ms_hie_date" class="def">ms_hie_date</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="../time/Data-Time-Clock.html#t:UTCTime" title="Data.Time.Clock">UTCTime</a></dfn><div class="doc"><p>Timestamp of hie file, if we have one</p></div></li><li><dfn class="src"><a id="v:ms_srcimps" class="def">ms_srcimps</a> :: [(<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Data-FastString.html#t:FastString" title="GHC.Data.FastString">FastString</a>, <a href="GHC.html#t:Located" title="GHC">Located</a> <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a>)]</dfn><div class="doc"><p>Source imports of the module</p></div></li><li><dfn class="src"><a id="v:ms_textual_imps" class="def">ms_textual_imps</a> :: [(<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Data-FastString.html#t:FastString" title="GHC.Data.FastString">FastString</a>, <a href="GHC.html#t:Located" title="GHC">Located</a> <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a>)]</dfn><div class="doc"><p>Non-source imports of the module from the module *text*</p></div></li><li><dfn class="src"><a id="v:ms_parsed_mod" class="def">ms_parsed_mod</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Driver-Types.html#t:HsParsedModule" title="GHC.Driver.Types">HsParsedModule</a></dfn><div class="doc"><p>The parsed, nonrenamed source, if we have it.  This is also
 used to support &quot;inline module syntax&quot; in Backpack files.</p></div></li><li><dfn class="src"><a id="v:ms_hspp_file" class="def">ms_hspp_file</a> :: <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a></dfn><div class="doc"><p>Filename of preprocessed source file</p></div></li><li><dfn class="src"><a id="v:ms_hspp_opts" class="def">ms_hspp_opts</a> :: <a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a></dfn><div class="doc"><p>Cached flags from <code>OPTIONS</code>, <code>INCLUDE</code> and <code>LANGUAGE</code>
 pragmas in the modules source code</p></div></li><li><dfn class="src"><a id="v:ms_hspp_buf" class="def">ms_hspp_buf</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Data-StringBuffer.html#t:StringBuffer" title="GHC.Data.StringBuffer">StringBuffer</a></dfn><div class="doc"><p>The actual preprocessed source, if we have it</p></div></li></ul></div></td></tr></table></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:ModSummary">Instances</h4><details id="i:ModSummary" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:ModSummary:Outputable:1"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a></span> <a href="src/GHC.Driver.Types.html#line-2991" class="link">Source</a> <a href="#t:ModSummary" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:ModSummary:Outputable:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Types.html">GHC.Driver.Types</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><a id="v:ms_mod_name" class="def">ms_mod_name</a> :: <a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a> -&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> <a href="src/GHC.Driver.Types.html#ms_mod_name" class="link">Source</a> <a href="#v:ms_mod_name" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ModLocation" class="def">ModLocation</a> <a href="src/GHC.Unit.Module.Location.html#ModLocation" class="link">Source</a> <a href="#t:ModLocation" class="selflink">#</a></p><div class="doc"><p>Module Location</p><p>Where a module lives on the file system: the actual locations
 of the .hs, .hi and .o files, if we have them.</p><p>For a module in another unit, the ml_hs_file and ml_obj_file components of
 ModLocation are undefined.</p><p>The locations specified by a ModLocation may or may not
 correspond to actual files yet: for example, even if the object
 file doesn't exist, the ModLocation still contains the path to
 where the object file will reside if/when it is created.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ModLocation" class="def">ModLocation</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:ml_hs_file" class="def">ml_hs_file</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a></dfn><div class="doc"><p>The source file, if we have one.  Package modules
 probably don't have source files.</p></div></li><li><dfn class="src"><a id="v:ml_hi_file" class="def">ml_hi_file</a> :: <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a></dfn><div class="doc"><p>Where the .hi file is, whether or not it exists
 yet.  Always of form foo.hi, even if there is an
 hi-boot file (we add the -boot suffix later)</p></div></li><li><dfn class="src"><a id="v:ml_obj_file" class="def">ml_obj_file</a> :: <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a></dfn><div class="doc"><p>Where the .o file is, whether or not it exists yet.
 (might not exist either because the module hasn't
 been compiled yet, or because it is part of a
 unit with a .a file)</p></div></li><li><dfn class="src"><a id="v:ml_hie_file" class="def">ml_hie_file</a> :: <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a></dfn><div class="doc"><p>Where the .hie file is, whether or not it exists
 yet.</p></div></li></ul></div></td></tr></table></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:ModLocation">Instances</h4><details id="i:ModLocation" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:ModLocation:Show:1"></span> <a href="GHC-Prelude.html#t:Show" title="GHC.Prelude">Show</a> <a href="GHC.html#t:ModLocation" title="GHC">ModLocation</a></span> <a href="src/GHC.Unit.Module.Location.html#line-49" class="link">Source</a> <a href="#t:ModLocation" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:ModLocation:Show:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Unit-Module-Location.html">GHC.Unit.Module.Location</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; <a href="GHC.html#t:ModLocation" title="GHC">ModLocation</a> -&gt; <a href="GHC-Prelude.html#t:ShowS" title="GHC.Prelude">ShowS</a> <a href="../base/src/GHC.Show.html#showsPrec" class="link">Source</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="GHC.html#t:ModLocation" title="GHC">ModLocation</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> <a href="../base/src/GHC.Show.html#show" class="link">Source</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="GHC.html#t:ModLocation" title="GHC">ModLocation</a>] -&gt; <a href="GHC-Prelude.html#t:ShowS" title="GHC.Prelude">ShowS</a> <a href="../base/src/GHC.Show.html#showList" class="link">Source</a> <a href="#v:showList" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:ModLocation:Outputable:2"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC.html#t:ModLocation" title="GHC">ModLocation</a></span> <a href="src/GHC.Unit.Module.Location.html#line-51" class="link">Source</a> <a href="#t:ModLocation" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:ModLocation:Outputable:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Unit-Module-Location.html">GHC.Unit.Module.Location</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC.html#t:ModLocation" title="GHC">ModLocation</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC.html#t:ModLocation" title="GHC">ModLocation</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><a id="v:getModSummary" class="def">getModSummary</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; m <a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a> <a href="src/GHC.html#getModSummary" class="link">Source</a> <a href="#v:getModSummary" class="selflink">#</a></p><div class="doc"><p>Return the <code><a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a></code> of a module with the given name.</p><p>The module must be part of the module graph (see <code><a href="GHC-Driver-Types.html#v:hsc_mod_graph" title="GHC.Driver.Types">hsc_mod_graph</a></code> and
 <code><a href="GHC.html#t:ModuleGraph" title="GHC">ModuleGraph</a></code>).  If this is not the case, this function will throw a
 <code><a href="GHC-Driver-Types.html#t:GhcApiError" title="GHC.Driver.Types">GhcApiError</a></code>.</p><p>This function ignores boot modules and requires that there is only one
 non-boot module with the given name.</p></div></div><div class="top"><p class="src"><a id="v:getModuleGraph" class="def">getModuleGraph</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m <a href="GHC.html#t:ModuleGraph" title="GHC">ModuleGraph</a> <a href="src/GHC.html#getModuleGraph" class="link">Source</a> <a href="#v:getModuleGraph" class="selflink">#</a></p><div class="doc"><p>Get the module dependency graph.</p></div></div><div class="top"><p class="src"><a id="v:isLoaded" class="def">isLoaded</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; m <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.html#isLoaded" class="link">Source</a> <a href="#v:isLoaded" class="selflink">#</a></p><div class="doc"><p>Return <code>True</code> &lt;==&gt; module is loaded.</p></div></div><div class="top"><p class="src"><a id="v:topSortModuleGraph" class="def">topSortModuleGraph</a> <a href="src/GHC.Driver.Make.html#topSortModuleGraph" class="link">Source</a> <a href="#v:topSortModuleGraph" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></td><td class="doc"><p>Drop hi-boot nodes? (see below)</p></td></tr><tr><td class="src">-&gt; <a href="GHC.html#t:ModuleGraph" title="GHC">ModuleGraph</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">-&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a></td><td class="doc"><p>Root module name.  If <code>Nothing</code>, use the full graph.</p></td></tr><tr><td class="src">-&gt; [<a href="GHC-Data-Graph-Directed.html#t:SCC" title="GHC.Data.Graph.Directed">SCC</a> <a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a>]</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="doc"><p>Topological sort of the module graph</p><p>Calculate SCCs of the module graph, possibly dropping the hi-boot nodes
 The resulting list of strongly-connected-components is in topologically
 sorted order, starting with the module(s) at the bottom of the
 dependency graph (ie compile them first) and ending with the ones at
 the top.</p><p>Drop hi-boot nodes (first boolean arg)?</p><ul><li><code>False</code>:   treat the hi-boot summaries as nodes of the graph,
              so the graph must be acyclic</li><li><code>True</code>:    eliminate the hi-boot nodes, and instead pretend
              the a source-import of Foo is an import of Foo
              The resulting graph has no hi-boot nodes, but can be cyclic</li></ul></div></div><a href="#g:8" id="g:8"><h1>Inspecting modules</h1></a><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ModuleInfo" class="def">ModuleInfo</a> <a href="src/GHC.html#ModuleInfo" class="link">Source</a> <a href="#t:ModuleInfo" class="selflink">#</a></p><div class="doc"><p>Container for information about a <code><a href="GHC.html#t:Module" title="GHC">Module</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:getModuleInfo" class="def">getModuleInfo</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:Module" title="GHC">Module</a> -&gt; m (<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:ModuleInfo" title="GHC">ModuleInfo</a>) <a href="src/GHC.html#getModuleInfo" class="link">Source</a> <a href="#v:getModuleInfo" class="selflink">#</a></p><div class="doc"><p>Request information about a loaded <code><a href="GHC.html#t:Module" title="GHC">Module</a></code></p></div></div><div class="top"><p class="src"><a id="v:modInfoTyThings" class="def">modInfoTyThings</a> :: <a href="GHC.html#t:ModuleInfo" title="GHC">ModuleInfo</a> -&gt; [<a href="GHC.html#t:TyThing" title="GHC">TyThing</a>] <a href="src/GHC.html#modInfoTyThings" class="link">Source</a> <a href="#v:modInfoTyThings" class="selflink">#</a></p><div class="doc"><p>The list of top-level entities defined in a module</p></div></div><div class="top"><p class="src"><a id="v:modInfoTopLevelScope" class="def">modInfoTopLevelScope</a> :: <a href="GHC.html#t:ModuleInfo" title="GHC">ModuleInfo</a> -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> [<a href="GHC.html#t:Name" title="GHC">Name</a>] <a href="src/GHC.html#modInfoTopLevelScope" class="link">Source</a> <a href="#v:modInfoTopLevelScope" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:modInfoExports" class="def">modInfoExports</a> :: <a href="GHC.html#t:ModuleInfo" title="GHC">ModuleInfo</a> -&gt; [<a href="GHC.html#t:Name" title="GHC">Name</a>] <a href="src/GHC.html#modInfoExports" class="link">Source</a> <a href="#v:modInfoExports" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:modInfoExportsWithSelectors" class="def">modInfoExportsWithSelectors</a> :: <a href="GHC.html#t:ModuleInfo" title="GHC">ModuleInfo</a> -&gt; [<a href="GHC.html#t:Name" title="GHC">Name</a>] <a href="src/GHC.html#modInfoExportsWithSelectors" class="link">Source</a> <a href="#v:modInfoExportsWithSelectors" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:modInfoInstances" class="def">modInfoInstances</a> :: <a href="GHC.html#t:ModuleInfo" title="GHC">ModuleInfo</a> -&gt; [<a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a>] <a href="src/GHC.html#modInfoInstances" class="link">Source</a> <a href="#v:modInfoInstances" class="selflink">#</a></p><div class="doc"><p>Returns the instances defined by the specified module.
 Warning: currently unimplemented for package modules.</p></div></div><div class="top"><p class="src"><a id="v:modInfoIsExportedName" class="def">modInfoIsExportedName</a> :: <a href="GHC.html#t:ModuleInfo" title="GHC">ModuleInfo</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.html#modInfoIsExportedName" class="link">Source</a> <a href="#v:modInfoIsExportedName" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:modInfoLookupName" class="def">modInfoLookupName</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:ModuleInfo" title="GHC">ModuleInfo</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; m (<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:TyThing" title="GHC">TyThing</a>) <a href="src/GHC.html#modInfoLookupName" class="link">Source</a> <a href="#v:modInfoLookupName" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:modInfoIface" class="def">modInfoIface</a> :: <a href="GHC.html#t:ModuleInfo" title="GHC">ModuleInfo</a> -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:ModIface" title="GHC">ModIface</a> <a href="src/GHC.html#modInfoIface" class="link">Source</a> <a href="#v:modInfoIface" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:modInfoRdrEnv" class="def">modInfoRdrEnv</a> :: <a href="GHC.html#t:ModuleInfo" title="GHC">ModuleInfo</a> -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Types-Name-Reader.html#t:GlobalRdrEnv" title="GHC.Types.Name.Reader">GlobalRdrEnv</a> <a href="src/GHC.html#modInfoRdrEnv" class="link">Source</a> <a href="#v:modInfoRdrEnv" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:modInfoSafe" class="def">modInfoSafe</a> :: <a href="GHC.html#t:ModuleInfo" title="GHC">ModuleInfo</a> -&gt; <a href="GHC.html#t:SafeHaskellMode" title="GHC">SafeHaskellMode</a> <a href="src/GHC.html#modInfoSafe" class="link">Source</a> <a href="#v:modInfoSafe" class="selflink">#</a></p><div class="doc"><p>Retrieve module safe haskell mode</p></div></div><div class="top"><p class="src"><a id="v:lookupGlobalName" class="def">lookupGlobalName</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; m (<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:TyThing" title="GHC">TyThing</a>) <a href="src/GHC.html#lookupGlobalName" class="link">Source</a> <a href="#v:lookupGlobalName" class="selflink">#</a></p><div class="doc"><p>Looks up a global name: that is, any top-level name in any
 visible module.  Unlike <code><a href="GHC.html#v:lookupName" title="GHC">lookupName</a></code>, lookupGlobalName does not use
 the interactive context, and therefore does not require a preceding
 <code><a href="GHC.html#v:setContext" title="GHC">setContext</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:findGlobalAnns" class="def">findGlobalAnns</a> :: (<a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m, <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> a) =&gt; ([<a href="../base/Data-Word.html#t:Word8" title="Data.Word">Word8</a>] -&gt; a) -&gt; <a href="GHC-Types-Annotations.html#t:AnnTarget" title="GHC.Types.Annotations">AnnTarget</a> <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; m [a] <a href="src/GHC.html#findGlobalAnns" class="link">Source</a> <a href="#v:findGlobalAnns" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:mkPrintUnqualifiedForModule" class="def">mkPrintUnqualifiedForModule</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:ModuleInfo" title="GHC">ModuleInfo</a> -&gt; m (<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:PrintUnqualified" title="GHC">PrintUnqualified</a>) <a href="src/GHC.html#mkPrintUnqualifiedForModule" class="link">Source</a> <a href="#v:mkPrintUnqualifiedForModule" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:ModIface" class="def">ModIface</a> = <a href="GHC.html#t:ModIface_" title="GHC">ModIface_</a> 'ModIfaceFinal <a href="src/GHC.Driver.Types.html#ModIface" class="link">Source</a> <a href="#t:ModIface" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ModIface_" class="def">ModIface_</a> (phase :: ModIfacePhase) <a href="src/GHC.Driver.Types.html#ModIface_" class="link">Source</a> <a href="#t:ModIface_" class="selflink">#</a></p><div class="doc"><p>A <code><a href="GHC.html#t:ModIface" title="GHC">ModIface</a></code> plus a <code><a href="GHC-Driver-Types.html#t:ModDetails" title="GHC.Driver.Types">ModDetails</a></code> summarises everything we know
 about a compiled module.  The <code><a href="GHC.html#t:ModIface" title="GHC">ModIface</a></code> is the stuff *before* linking,
 and can be written out to an interface file. The 'ModDetails is after
 linking and can be completely recovered from just the <code><a href="GHC.html#t:ModIface" title="GHC">ModIface</a></code>.</p><p>When we read an interface file, we also construct a <code><a href="GHC.html#t:ModIface" title="GHC">ModIface</a></code> from it,
 except that we explicitly make the <code><a href="GHC.html#v:mi_decls" title="GHC">mi_decls</a></code> and a few other fields empty;
 as when reading we consolidate the declarations etc. into a number of indexed
 maps and environments in the <code><a href="GHC-Driver-Types.html#t:ExternalPackageState" title="GHC.Driver.Types">ExternalPackageState</a></code>.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ModIface" class="def">ModIface</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:mi_module" class="def">mi_module</a> :: !<a href="GHC.html#t:Module" title="GHC">Module</a></dfn><div class="doc"><p>Name of the module we are for</p></div></li><li><dfn class="src"><a id="v:mi_sig_of" class="def">mi_sig_of</a> :: !(<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:Module" title="GHC">Module</a>)</dfn><div class="doc"><p>Are we a sig of another mod?</p></div></li><li><dfn class="src"><a id="v:mi_hsc_src" class="def">mi_hsc_src</a> :: !<a href="GHC-Driver-Types.html#t:HscSource" title="GHC.Driver.Types">HscSource</a></dfn><div class="doc"><p>Boot? Signature?</p></div></li><li><dfn class="src"><a id="v:mi_deps" class="def">mi_deps</a> :: <a href="GHC-Driver-Types.html#t:Dependencies" title="GHC.Driver.Types">Dependencies</a></dfn><div class="doc"><p>The dependencies of the module.  This is
 consulted for directly-imported modules, but not
 for anything else (hence lazy)</p></div></li><li><dfn class="src"><a id="v:mi_usages" class="def">mi_usages</a> :: [<a href="GHC-Driver-Types.html#t:Usage" title="GHC.Driver.Types">Usage</a>]</dfn><div class="doc"><p>Usages; kept sorted so that it's easy to decide
 whether to write a new iface file (changing usages
 doesn't affect the hash of this module)
 NOT STRICT!  we read this field lazily from the interface file
 It is *only* consulted by the recompilation checker</p></div></li><li><dfn class="src"><a id="v:mi_exports" class="def">mi_exports</a> :: ![<a href="GHC-Driver-Types.html#t:IfaceExport" title="GHC.Driver.Types">IfaceExport</a>]</dfn><div class="doc"><p>Exports
 Kept sorted by (mod,occ), to make version comparisons easier
 Records the modules that are the declaration points for things
 exported by this module, and the <code><a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a></code>s of those things</p></div></li><li><dfn class="src"><a id="v:mi_used_th" class="def">mi_used_th</a> :: !<a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></dfn><div class="doc"><p>Module required TH splices when it was compiled.
 This disables recompilation avoidance (see #481).</p></div></li><li><dfn class="src"><a id="v:mi_fixities" class="def">mi_fixities</a> :: [(<a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a>, <a href="GHC-Types-Basic.html#t:Fixity" title="GHC.Types.Basic">Fixity</a>)]</dfn><div class="doc"><p>Fixities
 NOT STRICT!  we read this field lazily from the interface file</p></div></li><li><dfn class="src"><a id="v:mi_warns" class="def">mi_warns</a> :: <a href="GHC-Driver-Types.html#t:Warnings" title="GHC.Driver.Types">Warnings</a></dfn><div class="doc"><p>Warnings
 NOT STRICT!  we read this field lazily from the interface file</p></div></li><li><dfn class="src"><a id="v:mi_anns" class="def">mi_anns</a> :: [<a href="GHC-Iface-Syntax.html#t:IfaceAnnotation" title="GHC.Iface.Syntax">IfaceAnnotation</a>]</dfn><div class="doc"><p>Annotations
 NOT STRICT!  we read this field lazily from the interface file</p></div></li><li><dfn class="src"><a id="v:mi_decls" class="def">mi_decls</a> :: [IfaceDeclExts phase]</dfn><div class="doc"><p>Type, class and variable declarations
 The hash of an Id changes if its fixity or deprecations change
      (as well as its type of course)
 Ditto data constructors, class operations, except that
 the hash of the parent class/tycon changes</p></div></li><li><dfn class="src"><a id="v:mi_globals" class="def">mi_globals</a> :: !(<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Types-Name-Reader.html#t:GlobalRdrEnv" title="GHC.Types.Name.Reader">GlobalRdrEnv</a>)</dfn><div class="doc"><p>Binds all the things defined at the top level in
 the <em>original source</em> code for this module. which
 is NOT the same as mi_exports, nor mi_decls (which
 may contains declarations for things not actually
 defined by the user).  Used for GHCi and for inspecting
 the contents of modules via the GHC API only.</p><p>(We need the source file to figure out the
 top-level environment, if we didn't compile this module
 from source then this field contains <code>Nothing</code>).</p><p>Strictly speaking this field should live in the
 <code><a href="GHC-Driver-Types.html#t:HomeModInfo" title="GHC.Driver.Types">HomeModInfo</a></code>, but that leads to more plumbing.</p></div></li><li><dfn class="src"><a id="v:mi_insts" class="def">mi_insts</a> :: [<a href="GHC-Iface-Syntax.html#t:IfaceClsInst" title="GHC.Iface.Syntax">IfaceClsInst</a>]</dfn><div class="doc"><p>Sorted class instance</p></div></li><li><dfn class="src"><a id="v:mi_fam_insts" class="def">mi_fam_insts</a> :: [<a href="GHC-Iface-Syntax.html#t:IfaceFamInst" title="GHC.Iface.Syntax">IfaceFamInst</a>]</dfn><div class="doc"><p>Sorted family instances</p></div></li><li><dfn class="src"><a id="v:mi_rules" class="def">mi_rules</a> :: [<a href="GHC-Iface-Syntax.html#t:IfaceRule" title="GHC.Iface.Syntax">IfaceRule</a>]</dfn><div class="doc"><p>Sorted rules</p></div></li><li><dfn class="src"><a id="v:mi_hpc" class="def">mi_hpc</a> :: !<a href="GHC-Driver-Types.html#t:AnyHpcUsage" title="GHC.Driver.Types">AnyHpcUsage</a></dfn><div class="doc"><p>True if this program uses Hpc at any point in the program.</p></div></li><li><dfn class="src"><a id="v:mi_trust" class="def">mi_trust</a> :: !<a href="GHC-Driver-Types.html#t:IfaceTrustInfo" title="GHC.Driver.Types">IfaceTrustInfo</a></dfn><div class="doc"><p>Safe Haskell Trust information for this module.</p></div></li><li><dfn class="src"><a id="v:mi_trust_pkg" class="def">mi_trust_pkg</a> :: !<a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></dfn><div class="doc"><p>Do we require the package this module resides in be trusted
 to trust this module? This is used for the situation where a
 module is Safe (so doesn't require the package be trusted
 itself) but imports some trustworthy modules from its own
 package (which does require its own package be trusted).
 See Note [Trust Own Package] in GHC.Rename.Names</p></div></li><li><dfn class="src"><a id="v:mi_complete_sigs" class="def">mi_complete_sigs</a> :: [<a href="GHC-Iface-Syntax.html#t:IfaceCompleteMatch" title="GHC.Iface.Syntax">IfaceCompleteMatch</a>]</dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:mi_doc_hdr" class="def">mi_doc_hdr</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Hs-Doc.html#t:HsDocString" title="GHC.Hs.Doc">HsDocString</a></dfn><div class="doc"><p>Module header.</p></div></li><li><dfn class="src"><a id="v:mi_decl_docs" class="def">mi_decl_docs</a> :: <a href="GHC-Hs-Doc.html#t:DeclDocMap" title="GHC.Hs.Doc">DeclDocMap</a></dfn><div class="doc"><p>Docs on declarations.</p></div></li><li><dfn class="src"><a id="v:mi_arg_docs" class="def">mi_arg_docs</a> :: <a href="GHC-Hs-Doc.html#t:ArgDocMap" title="GHC.Hs.Doc">ArgDocMap</a></dfn><div class="doc"><p>Docs on arguments.</p></div></li><li><dfn class="src"><a id="v:mi_final_exts" class="def">mi_final_exts</a> :: !(IfaceBackendExts phase)</dfn><div class="doc"><p>Either <code>()</code> or <code><a href="GHC-Driver-Types.html#t:ModIfaceBackend" title="GHC.Driver.Types">ModIfaceBackend</a></code> for
 a fully instantiated interface.</p></div></li><li><dfn class="src"><a id="v:mi_ext_fields" class="def">mi_ext_fields</a> :: <a href="GHC-Driver-Types.html#t:ExtensibleFields" title="GHC.Driver.Types">ExtensibleFields</a></dfn><div class="doc"><p>Additional optional fields, where the Map key represents
 the field name, resulting in a (size, serialized data) pair.
 Because the data is intended to be serialized through the
 internal <code><a href="GHC-Utils-Binary.html#t:Binary" title="GHC.Utils.Binary">Binary</a></code> class (increasing compatibility with types
 using <code><a href="GHC.html#t:Name" title="GHC">Name</a></code> and <code><a href="GHC-Data-FastString.html#t:FastString" title="GHC.Data.FastString">FastString</a></code>, such as HIE), this format is
 chosen over <code>ByteString</code>s.</p></div></li></ul></div></td></tr></table></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:ModIface_">Instances</h4><details id="i:ModIface_" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:ModIface_:Binary:1"></span> <a href="GHC-Utils-Binary.html#t:Binary" title="GHC.Utils.Binary">Binary</a> <a href="GHC.html#t:ModIface" title="GHC">ModIface</a></span> <a href="src/GHC.Driver.Types.html#line-1165" class="link">Source</a> <a href="#t:ModIface_" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:ModIface_:Binary:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Types.html">GHC.Driver.Types</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put_">put_</a> :: <a href="GHC-Utils-Binary.html#t:BinHandle" title="GHC.Utils.Binary">BinHandle</a> -&gt; <a href="GHC.html#t:ModIface" title="GHC">ModIface</a> -&gt; <a href="GHC-Prelude.html#t:IO" title="GHC.Prelude">IO</a> () <a href="src/GHC.Utils.Binary.html#put_" class="link">Source</a> <a href="#v:put_" class="selflink">#</a></p><p class="src"><a href="#v:put">put</a> :: <a href="GHC-Utils-Binary.html#t:BinHandle" title="GHC.Utils.Binary">BinHandle</a> -&gt; <a href="GHC.html#t:ModIface" title="GHC">ModIface</a> -&gt; <a href="GHC-Prelude.html#t:IO" title="GHC.Prelude">IO</a> (<a href="GHC-Utils-Binary.html#t:Bin" title="GHC.Utils.Binary">Bin</a> <a href="GHC.html#t:ModIface" title="GHC">ModIface</a>) <a href="src/GHC.Utils.Binary.html#put" class="link">Source</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="GHC-Utils-Binary.html#t:BinHandle" title="GHC.Utils.Binary">BinHandle</a> -&gt; <a href="GHC-Prelude.html#t:IO" title="GHC.Prelude">IO</a> <a href="GHC.html#t:ModIface" title="GHC">ModIface</a> <a href="src/GHC.Utils.Binary.html#get" class="link">Source</a> <a href="#v:get" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:ModIface_:NFData:2"></span> (<a href="../deepseq/Control-DeepSeq.html#t:NFData" title="Control.DeepSeq">NFData</a> (IfaceBackendExts phase), <a href="../deepseq/Control-DeepSeq.html#t:NFData" title="Control.DeepSeq">NFData</a> (IfaceDeclExts phase)) =&gt; <a href="../deepseq/Control-DeepSeq.html#t:NFData" title="Control.DeepSeq">NFData</a> (<a href="GHC.html#t:ModIface_" title="GHC">ModIface_</a> phase)</span> <a href="src/GHC.Driver.Types.html#line-3304" class="link">Source</a> <a href="#t:ModIface_" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:ModIface_:NFData:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Types.html">GHC.Driver.Types</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:rnf">rnf</a> :: <a href="GHC.html#t:ModIface_" title="GHC">ModIface_</a> phase -&gt; () <a href="../deepseq/src/Control.DeepSeq.html#rnf" class="link">Source</a> <a href="#v:rnf" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:SafeHaskellMode" class="def">SafeHaskellMode</a> <a href="src/GHC.Driver.Session.html#SafeHaskellMode" class="link">Source</a> <a href="#t:SafeHaskellMode" class="selflink">#</a></p><div class="doc"><p>The various Safe Haskell modes</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Sf_None" class="def">Sf_None</a></td><td class="doc"><p>inferred unsafe</p></td></tr><tr><td class="src"><a id="v:Sf_Unsafe" class="def">Sf_Unsafe</a></td><td class="doc"><p>declared and checked</p></td></tr><tr><td class="src"><a id="v:Sf_Trustworthy" class="def">Sf_Trustworthy</a></td><td class="doc"><p>declared and checked</p></td></tr><tr><td class="src"><a id="v:Sf_Safe" class="def">Sf_Safe</a></td><td class="doc"><p>declared and checked</p></td></tr><tr><td class="src"><a id="v:Sf_SafeInferred" class="def">Sf_SafeInferred</a></td><td class="doc"><p>inferred as safe</p></td></tr><tr><td class="src"><a id="v:Sf_Ignore" class="def">Sf_Ignore</a></td><td class="doc"><p><code>-fno-safe-haskell</code> state</p></td></tr></table></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:SafeHaskellMode">Instances</h4><details id="i:SafeHaskellMode" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:SafeHaskellMode:Show:1"></span> <a href="GHC-Prelude.html#t:Show" title="GHC.Prelude">Show</a> <a href="GHC.html#t:SafeHaskellMode" title="GHC">SafeHaskellMode</a></span> <a href="src/GHC.Driver.Session.html#line-466" class="link">Source</a> <a href="#t:SafeHaskellMode" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:SafeHaskellMode:Show:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Session.html">GHC.Driver.Session</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; <a href="GHC.html#t:SafeHaskellMode" title="GHC">SafeHaskellMode</a> -&gt; <a href="GHC-Prelude.html#t:ShowS" title="GHC.Prelude">ShowS</a> <a href="../base/src/GHC.Show.html#showsPrec" class="link">Source</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="GHC.html#t:SafeHaskellMode" title="GHC">SafeHaskellMode</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> <a href="../base/src/GHC.Show.html#show" class="link">Source</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="GHC.html#t:SafeHaskellMode" title="GHC">SafeHaskellMode</a>] -&gt; <a href="GHC-Prelude.html#t:ShowS" title="GHC.Prelude">ShowS</a> <a href="../base/src/GHC.Show.html#showList" class="link">Source</a> <a href="#v:showList" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:SafeHaskellMode:Outputable:2"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC.html#t:SafeHaskellMode" title="GHC">SafeHaskellMode</a></span> <a href="src/GHC.Driver.Session.html#line-474" class="link">Source</a> <a href="#t:SafeHaskellMode" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:SafeHaskellMode:Outputable:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Session.html">GHC.Driver.Session</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC.html#t:SafeHaskellMode" title="GHC">SafeHaskellMode</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC.html#t:SafeHaskellMode" title="GHC">SafeHaskellMode</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:SafeHaskellMode:Eq:3"></span> <a href="GHC-Prelude.html#t:Eq" title="GHC.Prelude">Eq</a> <a href="GHC.html#t:SafeHaskellMode" title="GHC">SafeHaskellMode</a></span> <a href="src/GHC.Driver.Session.html#line-464" class="link">Source</a> <a href="#t:SafeHaskellMode" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:SafeHaskellMode:Eq:3"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Driver-Session.html">GHC.Driver.Session</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="GHC.html#t:SafeHaskellMode" title="GHC">SafeHaskellMode</a> -&gt; <a href="GHC.html#t:SafeHaskellMode" title="GHC">SafeHaskellMode</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="GHC.html#t:SafeHaskellMode" title="GHC">SafeHaskellMode</a> -&gt; <a href="GHC.html#t:SafeHaskellMode" title="GHC">SafeHaskellMode</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><a href="#g:9" id="g:9"><h1>Querying the environment</h1></a><a href="#g:10" id="g:10"><h1>Printing</h1></a><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:PrintUnqualified" class="def">PrintUnqualified</a> <a href="src/GHC.Utils.Outputable.html#PrintUnqualified" class="link">Source</a> <a href="#t:PrintUnqualified" class="selflink">#</a></p><div class="doc"><p>When printing code that contains original names, we need to map the
 original names back to something the user understands.  This is the
 purpose of the triple of functions that gets passed around
 when rendering <code><a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:alwaysQualify" class="def">alwaysQualify</a> :: <a href="GHC.html#t:PrintUnqualified" title="GHC">PrintUnqualified</a> <a href="src/GHC.Utils.Outputable.html#alwaysQualify" class="link">Source</a> <a href="#v:alwaysQualify" class="selflink">#</a></p></div><a href="#g:11" id="g:11"><h1>Interactive evaluation</h1></a><a href="#g:12" id="g:12"><h2>Executing statements</h2></a><div class="top"><p class="src"><a id="v:execStmt" class="def">execStmt</a> <a href="src/GHC.Runtime.Eval.html#execStmt" class="link">Source</a> <a href="#v:execStmt" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">=&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></td><td class="doc"><p>a statement (bind or expression)</p></td></tr><tr><td class="src">-&gt; <a href="GHC.html#t:ExecOptions" title="GHC">ExecOptions</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">-&gt; m <a href="GHC.html#t:ExecResult" title="GHC">ExecResult</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="doc"><p>Run a statement in the current interactive context.</p></div></div><div class="top"><p class="src"><a id="v:execStmt-39-" class="def">execStmt'</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Hs-Expr.html#t:GhciLStmt" title="GHC.Hs.Expr">GhciLStmt</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; <a href="GHC.html#t:ExecOptions" title="GHC">ExecOptions</a> -&gt; m <a href="GHC.html#t:ExecResult" title="GHC">ExecResult</a> <a href="src/GHC.Runtime.Eval.html#execStmt%27" class="link">Source</a> <a href="#v:execStmt-39-" class="selflink">#</a></p><div class="doc"><p>Like <code><a href="GHC.html#v:execStmt" title="GHC">execStmt</a></code>, but takes a parsed statement as argument. Useful when
 doing preprocessing on the AST before execution, e.g. in GHCi (see
 GHCi.UI.runStmt).</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ExecOptions" class="def">ExecOptions</a> <a href="src/GHC.Runtime.Eval.Types.html#ExecOptions" class="link">Source</a> <a href="#t:ExecOptions" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ExecOptions" class="def">ExecOptions</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:execSingleStep" class="def">execSingleStep</a> :: <a href="GHC.html#t:SingleStep" title="GHC">SingleStep</a></dfn><div class="doc"><p>stepping mode</p></div></li><li><dfn class="src"><a id="v:execSourceFile" class="def">execSourceFile</a> :: <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></dfn><div class="doc"><p>filename (for errors)</p></div></li><li><dfn class="src"><a id="v:execLineNumber" class="def">execLineNumber</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc"><p>line number (for errors)</p></div></li><li><dfn class="src"><a id="v:execWrap" class="def">execWrap</a> :: <a href="GHC.html#t:ForeignHValue" title="GHC">ForeignHValue</a> -&gt; <a href="GHC-Runtime-Interpreter.html#t:EvalExpr" title="GHC.Runtime.Interpreter">EvalExpr</a> <a href="GHC.html#t:ForeignHValue" title="GHC">ForeignHValue</a></dfn><div class="doc empty">&nbsp;</div></li></ul></div></td></tr></table></div></div><div class="top"><p class="src"><a id="v:execOptions" class="def">execOptions</a> :: <a href="GHC.html#t:ExecOptions" title="GHC">ExecOptions</a> <a href="src/GHC.Runtime.Eval.html#execOptions" class="link">Source</a> <a href="#v:execOptions" class="selflink">#</a></p><div class="doc"><p>default ExecOptions</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ExecResult" class="def">ExecResult</a> <a href="src/GHC.Runtime.Eval.Types.html#ExecResult" class="link">Source</a> <a href="#t:ExecResult" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ExecComplete" class="def">ExecComplete</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:execResult" class="def">execResult</a> :: <a href="GHC-Prelude.html#t:Either" title="GHC.Prelude">Either</a> <a href="../base/Control-Exception.html#t:SomeException" title="Control.Exception">SomeException</a> [<a href="GHC.html#t:Name" title="GHC">Name</a>]</dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:execAllocation" class="def">execAllocation</a> :: <a href="../base/Data-Word.html#t:Word64" title="Data.Word">Word64</a></dfn><div class="doc empty">&nbsp;</div></li></ul></div></td></tr><tr><td class="src"><a id="v:ExecBreak" class="def">ExecBreak</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:breakNames" class="def">breakNames</a> :: [<a href="GHC.html#t:Name" title="GHC">Name</a>]</dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:breakInfo" class="def">breakInfo</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:BreakInfo" title="GHC">BreakInfo</a></dfn><div class="doc empty">&nbsp;</div></li></ul></div></td></tr></table></div></div><div class="top"><p class="src"><a id="v:resumeExec" class="def">resumeExec</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; (<a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a>) -&gt; <a href="GHC.html#t:SingleStep" title="GHC">SingleStep</a> -&gt; m <a href="GHC.html#t:ExecResult" title="GHC">ExecResult</a> <a href="src/GHC.Runtime.Eval.html#resumeExec" class="link">Source</a> <a href="#v:resumeExec" class="selflink">#</a></p></div><a href="#g:13" id="g:13"><h2>Adding new declarations</h2></a><div class="top"><p class="src"><a id="v:runDecls" class="def">runDecls</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; m [<a href="GHC.html#t:Name" title="GHC">Name</a>] <a href="src/GHC.Runtime.Eval.html#runDecls" class="link">Source</a> <a href="#v:runDecls" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:runDeclsWithLocation" class="def">runDeclsWithLocation</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; m [<a href="GHC.html#t:Name" title="GHC">Name</a>] <a href="src/GHC.Runtime.Eval.html#runDeclsWithLocation" class="link">Source</a> <a href="#v:runDeclsWithLocation" class="selflink">#</a></p><div class="doc"><p>Run some declarations and return any user-visible names that were brought
 into scope.</p></div></div><div class="top"><p class="src"><a id="v:runParsedDecls" class="def">runParsedDecls</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; [<a href="GHC-Hs-Decls.html#t:LHsDecl" title="GHC.Hs.Decls">LHsDecl</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a>] -&gt; m [<a href="GHC.html#t:Name" title="GHC">Name</a>] <a href="src/GHC.Runtime.Eval.html#runParsedDecls" class="link">Source</a> <a href="#v:runParsedDecls" class="selflink">#</a></p><div class="doc"><p>Like <code><a href="GHC.html#v:runDeclsWithLocation" title="GHC">runDeclsWithLocation</a></code>, but takes parsed declarations as argument.
 Useful when doing preprocessing on the AST before execution, e.g. in GHCi
 (see GHCi.UI.runStmt).</p></div></div><a href="#g:14" id="g:14"><h2>Get/set the current context</h2></a><div class="top"><p class="src"><a id="v:parseImportDecl" class="def">parseImportDecl</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; m (<a href="GHC-Hs-ImpExp.html#t:ImportDecl" title="GHC.Hs.ImpExp">ImportDecl</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a>) <a href="src/GHC.Runtime.Eval.html#parseImportDecl" class="link">Source</a> <a href="#v:parseImportDecl" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:setContext" class="def">setContext</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; [<a href="GHC.html#t:InteractiveImport" title="GHC">InteractiveImport</a>] -&gt; m () <a href="src/GHC.Runtime.Eval.html#setContext" class="link">Source</a> <a href="#v:setContext" class="selflink">#</a></p><div class="doc"><p>Set the interactive evaluation context.</p><p>(setContext imports) sets the ic_imports field (which in turn
 determines what is in scope at the prompt) to <code>imports</code>, and
 constructs the ic_rn_glb_env environment to reflect it.</p><p>We retain in scope all the things defined at the prompt, and kept
 in ic_tythings.  (Indeed, they shadow stuff from ic_imports.)</p></div></div><div class="top"><p class="src"><a id="v:getContext" class="def">getContext</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m [<a href="GHC.html#t:InteractiveImport" title="GHC">InteractiveImport</a>] <a href="src/GHC.Runtime.Eval.html#getContext" class="link">Source</a> <a href="#v:getContext" class="selflink">#</a></p><div class="doc"><p>Get the interactive evaluation context, consisting of a pair of the
 set of modules from which we take the full top-level scope, and the set
 of modules from which we take just the exports respectively.</p></div></div><div class="top"><p class="src"><a id="v:setGHCiMonad" class="def">setGHCiMonad</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; m () <a href="src/GHC.html#setGHCiMonad" class="link">Source</a> <a href="#v:setGHCiMonad" class="selflink">#</a></p><div class="doc"><p>Set the monad GHCi lifts user statements into.</p><p>Checks that a type (in string form) is an instance of the
 <code>GHC.GHCi.GHCiSandboxIO</code> type class. Sets it to be the GHCi monad if it is,
 throws an error otherwise.</p></div></div><div class="top"><p class="src"><a id="v:getGHCiMonad" class="def">getGHCiMonad</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="src/GHC.html#getGHCiMonad" class="link">Source</a> <a href="#v:getGHCiMonad" class="selflink">#</a></p><div class="doc"><p>Get the monad GHCi lifts user statements into.</p></div></div><a href="#g:15" id="g:15"><h2>Inspecting the current context</h2></a><div class="top"><p class="src"><a id="v:getBindings" class="def">getBindings</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m [<a href="GHC.html#t:TyThing" title="GHC">TyThing</a>] <a href="src/GHC.html#getBindings" class="link">Source</a> <a href="#v:getBindings" class="selflink">#</a></p><div class="doc"><p>Return the bindings for the current interactive session.</p></div></div><div class="top"><p class="src"><a id="v:getInsts" class="def">getInsts</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m ([<a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a>], [<a href="GHC.html#t:FamInst" title="GHC">FamInst</a>]) <a href="src/GHC.html#getInsts" class="link">Source</a> <a href="#v:getInsts" class="selflink">#</a></p><div class="doc"><p>Return the instances for the current interactive session.</p></div></div><div class="top"><p class="src"><a id="v:getPrintUnqual" class="def">getPrintUnqual</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m <a href="GHC.html#t:PrintUnqualified" title="GHC">PrintUnqualified</a> <a href="src/GHC.html#getPrintUnqual" class="link">Source</a> <a href="#v:getPrintUnqual" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:findModule" class="def">findModule</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Data-FastString.html#t:FastString" title="GHC.Data.FastString">FastString</a> -&gt; m <a href="GHC.html#t:Module" title="GHC">Module</a> <a href="src/GHC.html#findModule" class="link">Source</a> <a href="#v:findModule" class="selflink">#</a></p><div class="doc"><p>Takes a <code><a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a></code> and possibly a <code><a href="GHC-Unit-Types.html#t:UnitId" title="GHC.Unit.Types">UnitId</a></code>, and consults the
 filesystem and package database to find the corresponding <code><a href="GHC.html#t:Module" title="GHC">Module</a></code>,
 using the algorithm that is used for an <code>import</code> declaration.</p></div></div><div class="top"><p class="src"><a id="v:lookupModule" class="def">lookupModule</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Data-FastString.html#t:FastString" title="GHC.Data.FastString">FastString</a> -&gt; m <a href="GHC.html#t:Module" title="GHC">Module</a> <a href="src/GHC.html#lookupModule" class="link">Source</a> <a href="#v:lookupModule" class="selflink">#</a></p><div class="doc"><p>Like <code><a href="GHC.html#v:findModule" title="GHC">findModule</a></code>, but differs slightly when the module refers to
 a source file, and the file has not been loaded via <code><a href="GHC.html#v:load" title="GHC">load</a></code>.  In
 this case, <code><a href="GHC.html#v:findModule" title="GHC">findModule</a></code> will throw an error (module not loaded),
 but <code><a href="GHC.html#v:lookupModule" title="GHC">lookupModule</a></code> will check to see whether the module can also be
 found in a package, and if so, that package <code><a href="GHC.html#t:Module" title="GHC">Module</a></code> will be
 returned.  If not, the usual module-not-found error will be thrown.</p></div></div><div class="top"><p class="src"><a id="v:isModuleTrusted" class="def">isModuleTrusted</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:Module" title="GHC">Module</a> -&gt; m <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.html#isModuleTrusted" class="link">Source</a> <a href="#v:isModuleTrusted" class="selflink">#</a></p><div class="doc"><p>Check that a module is safe to import (according to Safe Haskell).</p><p>We return True to indicate the import is safe and False otherwise
 although in the False case an error may be thrown first.</p></div></div><div class="top"><p class="src"><a id="v:moduleTrustReqs" class="def">moduleTrustReqs</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:Module" title="GHC">Module</a> -&gt; m (<a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a>, <a href="../containers/Data-Set.html#t:Set" title="Data.Set">Set</a> <a href="GHC-Unit-Types.html#t:UnitId" title="GHC.Unit.Types">UnitId</a>) <a href="src/GHC.html#moduleTrustReqs" class="link">Source</a> <a href="#v:moduleTrustReqs" class="selflink">#</a></p><div class="doc"><p>Return if a module is trusted and the pkgs it depends on to be trusted.</p></div></div><div class="top"><p class="src"><a id="v:getNamesInScope" class="def">getNamesInScope</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m [<a href="GHC.html#t:Name" title="GHC">Name</a>] <a href="src/GHC.Runtime.Eval.html#getNamesInScope" class="link">Source</a> <a href="#v:getNamesInScope" class="selflink">#</a></p><div class="doc"><p>Returns all names in scope in the current interactive context</p></div></div><div class="top"><p class="src"><a id="v:getRdrNamesInScope" class="def">getRdrNamesInScope</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m [<a href="GHC.html#t:RdrName" title="GHC">RdrName</a>] <a href="src/GHC.Runtime.Eval.html#getRdrNamesInScope" class="link">Source</a> <a href="#v:getRdrNamesInScope" class="selflink">#</a></p><div class="doc"><p>Returns all <code><a href="GHC.html#t:RdrName" title="GHC">RdrName</a></code>s in scope in the current interactive
 context, excluding any that are internally-generated.</p></div></div><div class="top"><p class="src"><a id="v:getGRE" class="def">getGRE</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m <a href="GHC-Types-Name-Reader.html#t:GlobalRdrEnv" title="GHC.Types.Name.Reader">GlobalRdrEnv</a> <a href="src/GHC.html#getGRE" class="link">Source</a> <a href="#v:getGRE" class="selflink">#</a></p><div class="doc"><p>get the GlobalRdrEnv for a session</p></div></div><div class="top"><p class="src"><a id="v:moduleIsInterpreted" class="def">moduleIsInterpreted</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:Module" title="GHC">Module</a> -&gt; m <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Runtime.Eval.html#moduleIsInterpreted" class="link">Source</a> <a href="#v:moduleIsInterpreted" class="selflink">#</a></p><div class="doc"><p>Returns <code>True</code> if the specified module is interpreted, and hence has
 its full top-level scope available.</p></div></div><div class="top"><p class="src"><a id="v:getInfo" class="def">getInfo</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; m (<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (<a href="GHC.html#t:TyThing" title="GHC">TyThing</a>, <a href="GHC-Types-Basic.html#t:Fixity" title="GHC.Types.Basic">Fixity</a>, [<a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a>], [<a href="GHC.html#t:FamInst" title="GHC">FamInst</a>], <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a>)) <a href="src/GHC.Runtime.Eval.html#getInfo" class="link">Source</a> <a href="#v:getInfo" class="selflink">#</a></p><div class="doc"><p>Looks up an identifier in the current interactive context (for :info)
 Filter the instances by the ones whose tycons (or clases resp)
 are in scope (qualified or otherwise).  Otherwise we list a whole lot too many!
 The exact choice of which ones to show, and which to hide, is a judgement call.
      (see #1581)</p></div></div><div class="top"><p class="src"><a id="v:showModule" class="def">showModule</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a> -&gt; m <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> <a href="src/GHC.Runtime.Eval.html#showModule" class="link">Source</a> <a href="#v:showModule" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:moduleIsBootOrNotObjectLinkable" class="def">moduleIsBootOrNotObjectLinkable</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a> -&gt; m <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Runtime.Eval.html#moduleIsBootOrNotObjectLinkable" class="link">Source</a> <a href="#v:moduleIsBootOrNotObjectLinkable" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getNameToInstancesIndex" class="def">getNameToInstancesIndex</a> <a href="src/GHC.html#getNameToInstancesIndex" class="link">Source</a> <a href="#v:getNameToInstancesIndex" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">=&gt; [<a href="GHC.html#t:Module" title="GHC">Module</a>]</td><td class="doc"><p>visible modules. An orphan instance will be returned
 if it is visible from at least one module in the list.</p></td></tr><tr><td class="src">-&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> [<a href="GHC.html#t:Module" title="GHC">Module</a>]</td><td class="doc"><p>modules to load. If this is not specified, we load
 modules for everything that is in scope unqualified.</p></td></tr><tr><td class="src">-&gt; m (<a href="GHC-Utils-Error.html#t:Messages" title="GHC.Utils.Error">Messages</a>, <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (<a href="GHC-Types-Name-Env.html#t:NameEnv" title="GHC.Types.Name.Env">NameEnv</a> ([<a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a>], [<a href="GHC.html#t:FamInst" title="GHC">FamInst</a>])))</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="doc"><p>Retrieve all type and family instances in the environment, indexed
 by <code><a href="GHC.html#t:Name" title="GHC">Name</a></code>. Each name's lists will contain every instance in which that name
 is mentioned in the instance head.</p></div></div><a href="#g:16" id="g:16"><h2>Inspecting types and kinds</h2></a><div class="top"><p class="src"><a id="v:exprType" class="def">exprType</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:TcRnExprMode" title="GHC">TcRnExprMode</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; m <a href="GHC.html#t:Type" title="GHC">Type</a> <a href="src/GHC.Runtime.Eval.html#exprType" class="link">Source</a> <a href="#v:exprType" class="selflink">#</a></p><div class="doc"><p>Get the type of an expression
 Returns the type as described by <code><a href="GHC.html#t:TcRnExprMode" title="GHC">TcRnExprMode</a></code></p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:TcRnExprMode" class="def">TcRnExprMode</a> <a href="src/GHC.Tc.Module.html#TcRnExprMode" class="link">Source</a> <a href="#t:TcRnExprMode" class="selflink">#</a></p><div class="doc"><p>How should we infer a type? See Note [TcRnExprMode]</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:TM_Inst" class="def">TM_Inst</a></td><td class="doc"><p>Instantiate the type fully (:type)</p></td></tr><tr><td class="src"><a id="v:TM_NoInst" class="def">TM_NoInst</a></td><td class="doc"><p>Do not instantiate the type (:type +v)</p></td></tr><tr><td class="src"><a id="v:TM_Default" class="def">TM_Default</a></td><td class="doc"><p>Default the type eagerly (:type +d)</p></td></tr></table></div></div><div class="top"><p class="src"><a id="v:typeKind" class="def">typeKind</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; m (<a href="GHC.html#t:Type" title="GHC">Type</a>, <a href="GHC.html#t:Kind" title="GHC">Kind</a>) <a href="src/GHC.Runtime.Eval.html#typeKind" class="link">Source</a> <a href="#v:typeKind" class="selflink">#</a></p><div class="doc"><p>Get the kind of a  type</p></div></div><a href="#g:17" id="g:17"><h2>Looking up a Name</h2></a><div class="top"><p class="src"><a id="v:parseName" class="def">parseName</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; m [<a href="GHC.html#t:Name" title="GHC">Name</a>] <a href="src/GHC.Runtime.Eval.html#parseName" class="link">Source</a> <a href="#v:parseName" class="selflink">#</a></p><div class="doc"><p>Parses a string as an identifier, and returns the list of <code><a href="GHC.html#t:Name" title="GHC">Name</a></code>s that
 the identifier can refer to in the current interactive context.</p></div></div><div class="top"><p class="src"><a id="v:lookupName" class="def">lookupName</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; m (<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:TyThing" title="GHC">TyThing</a>) <a href="src/GHC.html#lookupName" class="link">Source</a> <a href="#v:lookupName" class="selflink">#</a></p><div class="doc"><p>Returns the <code><a href="GHC.html#t:TyThing" title="GHC">TyThing</a></code> for a <code><a href="GHC.html#t:Name" title="GHC">Name</a></code>.  The <code><a href="GHC.html#t:Name" title="GHC">Name</a></code> may refer to any
 entity known to GHC, including <code><a href="GHC.html#t:Name" title="GHC">Name</a></code>s defined using <code>runStmt</code>.</p></div></div><a href="#g:18" id="g:18"><h2>Compiling expressions</h2></a><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:HValue" class="def">HValue</a> <a href="../ghci/src/GHCi.RemoteTypes.html#HValue" class="link">Source</a> <a href="#t:HValue" class="selflink">#</a></p><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:HValue">Instances</h4><details id="i:HValue" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:HValue:Show:1"></span> <a href="GHC-Prelude.html#t:Show" title="GHC.Prelude">Show</a> <a href="GHC.html#t:HValue" title="GHC">HValue</a></span></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:HValue:Show:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="../ghci/GHCi-RemoteTypes.html">GHCi.RemoteTypes</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; <a href="GHC.html#t:HValue" title="GHC">HValue</a> -&gt; <a href="GHC-Prelude.html#t:ShowS" title="GHC.Prelude">ShowS</a> <a href="../base/src/GHC.Show.html#showsPrec" class="link">Source</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="GHC.html#t:HValue" title="GHC">HValue</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> <a href="../base/src/GHC.Show.html#show" class="link">Source</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="GHC.html#t:HValue" title="GHC">HValue</a>] -&gt; <a href="GHC-Prelude.html#t:ShowS" title="GHC.Prelude">ShowS</a> <a href="../base/src/GHC.Show.html#showList" class="link">Source</a> <a href="#v:showList" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><a id="v:parseExpr" class="def">parseExpr</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; m (<a href="GHC-Hs-Expr.html#t:LHsExpr" title="GHC.Hs.Expr">LHsExpr</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a>) <a href="src/GHC.Runtime.Eval.html#parseExpr" class="link">Source</a> <a href="#v:parseExpr" class="selflink">#</a></p><div class="doc"><p>Parse an expression, the parsed expression can be further processed and
 passed to compileParsedExpr.</p></div></div><div class="top"><p class="src"><a id="v:compileParsedExpr" class="def">compileParsedExpr</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Hs-Expr.html#t:LHsExpr" title="GHC.Hs.Expr">LHsExpr</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a> -&gt; m <a href="GHC.html#t:HValue" title="GHC">HValue</a> <a href="src/GHC.Runtime.Eval.html#compileParsedExpr" class="link">Source</a> <a href="#v:compileParsedExpr" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:compileExpr" class="def">compileExpr</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; m <a href="GHC.html#t:HValue" title="GHC">HValue</a> <a href="src/GHC.Runtime.Eval.html#compileExpr" class="link">Source</a> <a href="#v:compileExpr" class="selflink">#</a></p><div class="doc"><p>Compile an expression, run it, and deliver the resulting HValue.</p></div></div><div class="top"><p class="src"><a id="v:dynCompileExpr" class="def">dynCompileExpr</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; m <a href="../base/Data-Dynamic.html#t:Dynamic" title="Data.Dynamic">Dynamic</a> <a href="src/GHC.Runtime.Eval.html#dynCompileExpr" class="link">Source</a> <a href="#v:dynCompileExpr" class="selflink">#</a></p><div class="doc"><p>Compile an expression, run it and return the result as a Dynamic.</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:ForeignHValue" class="def">ForeignHValue</a> = <a href="../ghci/GHCi-RemoteTypes.html#t:ForeignRef" title="GHCi.RemoteTypes">ForeignRef</a> <a href="GHC.html#t:HValue" title="GHC">HValue</a> <a href="../ghci/src/GHCi.RemoteTypes.html#ForeignHValue" class="link">Source</a> <a href="#t:ForeignHValue" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:compileExprRemote" class="def">compileExprRemote</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; m <a href="GHC.html#t:ForeignHValue" title="GHC">ForeignHValue</a> <a href="src/GHC.Runtime.Eval.html#compileExprRemote" class="link">Source</a> <a href="#v:compileExprRemote" class="selflink">#</a></p><div class="doc"><p>Compile an expression, run it, and deliver the resulting HValue.</p></div></div><div class="top"><p class="src"><a id="v:compileParsedExprRemote" class="def">compileParsedExprRemote</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Hs-Expr.html#t:LHsExpr" title="GHC.Hs.Expr">LHsExpr</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a> -&gt; m <a href="GHC.html#t:ForeignHValue" title="GHC">ForeignHValue</a> <a href="src/GHC.Runtime.Eval.html#compileParsedExprRemote" class="link">Source</a> <a href="#v:compileParsedExprRemote" class="selflink">#</a></p><div class="doc"><p>Compile a parsed expression (before renaming), run it, and deliver
 the resulting HValue.</p></div></div><a href="#g:19" id="g:19"><h2>Docs</h2></a><div class="top"><p class="src"><a id="v:getDocs" class="def">getDocs</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; m (<a href="GHC-Prelude.html#t:Either" title="GHC.Prelude">Either</a> <a href="GHC.html#t:GetDocsFailure" title="GHC">GetDocsFailure</a> (<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Hs-Doc.html#t:HsDocString" title="GHC.Hs.Doc">HsDocString</a>, <a href="../containers/Data-Map-Strict.html#t:Map" title="Data.Map.Strict">Map</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> <a href="GHC-Hs-Doc.html#t:HsDocString" title="GHC.Hs.Doc">HsDocString</a>)) <a href="src/GHC.Runtime.Eval.html#getDocs" class="link">Source</a> <a href="#v:getDocs" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:GetDocsFailure" class="def">GetDocsFailure</a> <a href="src/GHC.Runtime.Eval.html#GetDocsFailure" class="link">Source</a> <a href="#t:GetDocsFailure" class="selflink">#</a></p><div class="doc"><p>Failure modes for <code><a href="GHC.html#v:getDocs" title="GHC">getDocs</a></code>.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:NameHasNoModule" class="def">NameHasNoModule</a> <a href="GHC.html#t:Name" title="GHC">Name</a></td><td class="doc"><p><code><a href="GHC-Types-Name.html#v:nameModule_maybe" title="GHC.Types.Name">nameModule_maybe</a></code> returned <code><a href="GHC-Prelude.html#v:Nothing" title="GHC.Prelude">Nothing</a></code>.</p></td></tr><tr><td class="src"><a id="v:NoDocsInIface" class="def">NoDocsInIface</a></td><td class="doc"><p>This is probably because the module was loaded without <code>-haddock</code>,
 but it's also possible that the entire module contains no documentation.</p></td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a href="GHC.html#t:Module" title="GHC">Module</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></dfn><div class="doc"><p><code><a href="GHC-Prelude.html#v:True" title="GHC.Prelude">True</a></code>: The module was compiled.
 <code><a href="GHC-Prelude.html#v:False" title="GHC.Prelude">False</a></code>: The module was :loaded.</p></div></li></ul></div></td></tr><tr><td class="src"><a id="v:InteractiveName" class="def">InteractiveName</a></td><td class="doc"><p>The <code><a href="GHC.html#t:Name" title="GHC">Name</a></code> was defined interactively.</p></td></tr></table></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:GetDocsFailure">Instances</h4><details id="i:GetDocsFailure" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:GetDocsFailure:Outputable:1"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC.html#t:GetDocsFailure" title="GHC">GetDocsFailure</a></span> <a href="src/GHC.Runtime.Eval.html#line-965" class="link">Source</a> <a href="#t:GetDocsFailure" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:GetDocsFailure:Outputable:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Runtime-Eval.html">GHC.Runtime.Eval</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC.html#t:GetDocsFailure" title="GHC">GetDocsFailure</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC.html#t:GetDocsFailure" title="GHC">GetDocsFailure</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><a href="#g:20" id="g:20"><h2>Other</h2></a><div class="top"><p class="src"><a id="v:runTcInteractive" class="def">runTcInteractive</a> :: <a href="GHC.html#t:HscEnv" title="GHC">HscEnv</a> -&gt; <a href="GHC-Tc-Types.html#t:TcRn" title="GHC.Tc.Types">TcRn</a> a -&gt; <a href="GHC-Prelude.html#t:IO" title="GHC.Prelude">IO</a> (<a href="GHC-Utils-Error.html#t:Messages" title="GHC.Utils.Error">Messages</a>, <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> a) <a href="src/GHC.Tc.Module.html#runTcInteractive" class="link">Source</a> <a href="#v:runTcInteractive" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:isStmt" class="def">isStmt</a> :: <a href="GHC-Parser-Lexer.html#t:ParserFlags" title="GHC.Parser.Lexer">ParserFlags</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Runtime.Eval.html#isStmt" class="link">Source</a> <a href="#v:isStmt" class="selflink">#</a></p><div class="doc"><p>Returns <code>True</code> if passed string is a statement.</p></div></div><div class="top"><p class="src"><a id="v:hasImport" class="def">hasImport</a> :: <a href="GHC-Parser-Lexer.html#t:ParserFlags" title="GHC.Parser.Lexer">ParserFlags</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Runtime.Eval.html#hasImport" class="link">Source</a> <a href="#v:hasImport" class="selflink">#</a></p><div class="doc"><p>Returns <code>True</code> if passed string has an import declaration.</p></div></div><div class="top"><p class="src"><a id="v:isImport" class="def">isImport</a> :: <a href="GHC-Parser-Lexer.html#t:ParserFlags" title="GHC.Parser.Lexer">ParserFlags</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Runtime.Eval.html#isImport" class="link">Source</a> <a href="#v:isImport" class="selflink">#</a></p><div class="doc"><p>Returns <code>True</code> if passed string is an import declaration.</p></div></div><div class="top"><p class="src"><a id="v:isDecl" class="def">isDecl</a> :: <a href="GHC-Parser-Lexer.html#t:ParserFlags" title="GHC.Parser.Lexer">ParserFlags</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Runtime.Eval.html#isDecl" class="link">Source</a> <a href="#v:isDecl" class="selflink">#</a></p><div class="doc"><p>Returns <code>True</code> if passed string is a declaration but <strong><em>not a splice</em></strong>.</p></div></div><a href="#g:21" id="g:21"><h2>The debugger</h2></a><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:SingleStep" class="def">SingleStep</a> <a href="src/GHC.Runtime.Eval.Types.html#SingleStep" class="link">Source</a> <a href="#t:SingleStep" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:RunToCompletion" class="def">RunToCompletion</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:SingleStep" class="def">SingleStep</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:RunAndLogSteps" class="def">RunAndLogSteps</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Resume" class="def">Resume</a> <a href="src/GHC.Runtime.Eval.Types.html#Resume" class="link">Source</a> <a href="#t:Resume" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Resume" class="def">Resume</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:resumeStmt" class="def">resumeStmt</a> :: <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:resumeContext" class="def">resumeContext</a> :: <a href="../ghci/GHCi-RemoteTypes.html#t:ForeignRef" title="GHCi.RemoteTypes">ForeignRef</a> (<a href="../ghci/GHCi-Message.html#t:ResumeContext" title="GHCi.Message">ResumeContext</a> [<a href="../ghci/GHCi-RemoteTypes.html#t:HValueRef" title="GHCi.RemoteTypes">HValueRef</a>])</dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:resumeBindings" class="def">resumeBindings</a> :: ([<a href="GHC.html#t:TyThing" title="GHC">TyThing</a>], <a href="GHC-Types-Name-Reader.html#t:GlobalRdrEnv" title="GHC.Types.Name.Reader">GlobalRdrEnv</a>)</dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:resumeFinalIds" class="def">resumeFinalIds</a> :: [<a href="GHC.html#t:Id" title="GHC">Id</a>]</dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:resumeApStack" class="def">resumeApStack</a> :: <a href="GHC.html#t:ForeignHValue" title="GHC">ForeignHValue</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:resumeBreakInfo" class="def">resumeBreakInfo</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:BreakInfo" title="GHC">BreakInfo</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:resumeSpan" class="def">resumeSpan</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:resumeDecl" class="def">resumeDecl</a> :: <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:resumeCCS" class="def">resumeCCS</a> :: <a href="../ghci/GHCi-RemoteTypes.html#t:RemotePtr" title="GHCi.RemoteTypes">RemotePtr</a> <a href="../base/GHC-Stack-CCS.html#t:CostCentreStack" title="GHC.Stack.CCS">CostCentreStack</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:resumeHistory" class="def">resumeHistory</a> :: [<a href="GHC.html#t:History" title="GHC">History</a>]</dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:resumeHistoryIx" class="def">resumeHistoryIx</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc empty">&nbsp;</div></li></ul></div></td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:History" class="def">History</a> <a href="src/GHC.Runtime.Eval.Types.html#History" class="link">Source</a> <a href="#t:History" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getHistorySpan" class="def">getHistorySpan</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:History" title="GHC">History</a> -&gt; m <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> <a href="src/GHC.html#getHistorySpan" class="link">Source</a> <a href="#v:getHistorySpan" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getHistoryModule" class="def">getHistoryModule</a> :: <a href="GHC.html#t:History" title="GHC">History</a> -&gt; <a href="GHC.html#t:Module" title="GHC">Module</a> <a href="src/GHC.Runtime.Eval.html#getHistoryModule" class="link">Source</a> <a href="#v:getHistoryModule" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:abandon" class="def">abandon</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Runtime.Eval.html#abandon" class="link">Source</a> <a href="#v:abandon" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:abandonAll" class="def">abandonAll</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Runtime.Eval.html#abandonAll" class="link">Source</a> <a href="#v:abandonAll" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getResumeContext" class="def">getResumeContext</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; m [<a href="GHC.html#t:Resume" title="GHC">Resume</a>] <a href="src/GHC.Runtime.Eval.html#getResumeContext" class="link">Source</a> <a href="#v:getResumeContext" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:obtainTermFromId" class="def">obtainTermFromId</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> -&gt; <a href="GHC.html#t:Id" title="GHC">Id</a> -&gt; m <a href="GHC-Runtime-Heap-Inspect.html#t:Term" title="GHC.Runtime.Heap.Inspect">Term</a> <a href="src/GHC.html#obtainTermFromId" class="link">Source</a> <a href="#v:obtainTermFromId" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:obtainTermFromVal" class="def">obtainTermFromVal</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> -&gt; <a href="GHC.html#t:Type" title="GHC">Type</a> -&gt; a -&gt; m <a href="GHC-Runtime-Heap-Inspect.html#t:Term" title="GHC.Runtime.Heap.Inspect">Term</a> <a href="src/GHC.html#obtainTermFromVal" class="link">Source</a> <a href="#v:obtainTermFromVal" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:reconstructType" class="def">reconstructType</a> :: <a href="GHC.html#t:HscEnv" title="GHC">HscEnv</a> -&gt; <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; <a href="GHC.html#t:Id" title="GHC">Id</a> -&gt; <a href="GHC-Prelude.html#t:IO" title="GHC.Prelude">IO</a> (<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:Type" title="GHC">Type</a>) <a href="src/GHC.Runtime.Eval.html#reconstructType" class="link">Source</a> <a href="#v:reconstructType" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:modInfoModBreaks" class="def">modInfoModBreaks</a> :: <a href="GHC.html#t:ModuleInfo" title="GHC">ModuleInfo</a> -&gt; <a href="GHC.html#t:ModBreaks" title="GHC">ModBreaks</a> <a href="src/GHC.html#modInfoModBreaks" class="link">Source</a> <a href="#v:modInfoModBreaks" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ModBreaks" class="def">ModBreaks</a> <a href="src/GHC.ByteCode.Types.html#ModBreaks" class="link">Source</a> <a href="#t:ModBreaks" class="selflink">#</a></p><div class="doc"><p>All the information about the breakpoints for a module</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ModBreaks" class="def">ModBreaks</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:modBreaks_flags" class="def">modBreaks_flags</a> :: <a href="../ghci/GHCi-RemoteTypes.html#t:ForeignRef" title="GHCi.RemoteTypes">ForeignRef</a> <a href="../ghci/GHCi-BreakArray.html#t:BreakArray" title="GHCi.BreakArray">BreakArray</a></dfn><div class="doc"><p>The array of flags, one per breakpoint,
 indicating which breakpoints are enabled.</p></div></li><li><dfn class="src"><a id="v:modBreaks_locs" class="def">modBreaks_locs</a> :: !(<a href="../array/Data-Array.html#t:Array" title="Data.Array">Array</a> <a href="GHC.html#t:BreakIndex" title="GHC">BreakIndex</a> <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a>)</dfn><div class="doc"><p>An array giving the source span of each breakpoint.</p></div></li><li><dfn class="src"><a id="v:modBreaks_vars" class="def">modBreaks_vars</a> :: !(<a href="../array/Data-Array.html#t:Array" title="Data.Array">Array</a> <a href="GHC.html#t:BreakIndex" title="GHC">BreakIndex</a> [<a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a>])</dfn><div class="doc"><p>An array giving the names of the free variables at each breakpoint.</p></div></li><li><dfn class="src"><a id="v:modBreaks_decls" class="def">modBreaks_decls</a> :: !(<a href="../array/Data-Array.html#t:Array" title="Data.Array">Array</a> <a href="GHC.html#t:BreakIndex" title="GHC">BreakIndex</a> [<a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>])</dfn><div class="doc"><p>An array giving the names of the declarations enclosing each breakpoint.
 See Note [Field modBreaks_decls]</p></div></li><li><dfn class="src"><a id="v:modBreaks_ccs" class="def">modBreaks_ccs</a> :: !(<a href="../array/Data-Array.html#t:Array" title="Data.Array">Array</a> <a href="GHC.html#t:BreakIndex" title="GHC">BreakIndex</a> (<a href="../ghci/GHCi-RemoteTypes.html#t:RemotePtr" title="GHCi.RemoteTypes">RemotePtr</a> <a href="../base/GHC-Stack-CCS.html#t:CostCentre" title="GHC.Stack.CCS">CostCentre</a>))</dfn><div class="doc"><p>Array pointing to cost centre for each breakpoint</p></div></li><li><dfn class="src"><a id="v:modBreaks_breakInfo" class="def">modBreaks_breakInfo</a> :: <a href="../containers/Data-IntMap-Strict-Internal.html#t:IntMap" title="Data.IntMap.Strict.Internal">IntMap</a> <a href="GHC-ByteCode-Types.html#t:CgBreakInfo" title="GHC.ByteCode.Types">CgBreakInfo</a></dfn><div class="doc"><p>info about each breakpoint from the bytecode generator</p></div></li></ul></div></td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:BreakIndex" class="def">BreakIndex</a> = <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> <a href="src/GHC.ByteCode.Types.html#BreakIndex" class="link">Source</a> <a href="#t:BreakIndex" class="selflink">#</a></p><div class="doc"><p>Breakpoint index</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:BreakInfo" class="def">BreakInfo</a> <a href="src/GHC.Runtime.Eval.Types.html#BreakInfo" class="link">Source</a> <a href="#t:BreakInfo" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:back" class="def">back</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; m ([<a href="GHC.html#t:Name" title="GHC">Name</a>], <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a>, <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a>, <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>) <a href="src/GHC.Runtime.Eval.html#back" class="link">Source</a> <a href="#v:back" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:forward" class="def">forward</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; m ([<a href="GHC.html#t:Name" title="GHC">Name</a>], <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a>, <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a>, <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>) <a href="src/GHC.Runtime.Eval.html#forward" class="link">Source</a> <a href="#v:forward" class="selflink">#</a></p></div><a href="#g:22" id="g:22"><h1>Abstract syntax elements</h1></a><a href="#g:23" id="g:23"><h2>Units</h2></a><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:Unit" class="def">Unit</a> = <a href="GHC-Unit-Types.html#t:GenUnit" title="GHC.Unit.Types">GenUnit</a> <a href="GHC-Unit-Types.html#t:UnitId" title="GHC.Unit.Types">UnitId</a> <a href="src/GHC.Unit.Types.html#Unit" class="link">Source</a> <a href="#t:Unit" class="selflink">#</a></p></div><a href="#g:24" id="g:24"><h2>Modules</h2></a><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:Module" class="def">Module</a> = <a href="GHC-Unit-Types.html#t:GenModule" title="GHC.Unit.Types">GenModule</a> <a href="GHC.html#t:Unit" title="GHC">Unit</a> <a href="src/GHC.Unit.Types.html#Module" class="link">Source</a> <a href="#t:Module" class="selflink">#</a></p><div class="doc"><p>A Module is a pair of a <code><a href="GHC.html#t:Unit" title="GHC">Unit</a></code> and a <code><a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:mkModule" class="def">mkModule</a> :: u -&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; <a href="GHC-Unit-Types.html#t:GenModule" title="GHC.Unit.Types">GenModule</a> u <a href="src/GHC.Unit.Types.html#mkModule" class="link">Source</a> <a href="#v:mkModule" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:pprModule" class="def">pprModule</a> :: <a href="GHC.html#t:Module" title="GHC">Module</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Unit.Types.html#pprModule" class="link">Source</a> <a href="#v:pprModule" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:moduleName" class="def">moduleName</a> :: <a href="GHC-Unit-Types.html#t:GenModule" title="GHC.Unit.Types">GenModule</a> unit -&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> <a href="src/GHC.Unit.Types.html#moduleName" class="link">Source</a> <a href="#v:moduleName" class="selflink">#</a></p><div class="doc"><p>Module name (e.g. A.B.C)</p></div></div><div class="top"><p class="src"><a id="v:moduleUnit" class="def">moduleUnit</a> :: <a href="GHC-Unit-Types.html#t:GenModule" title="GHC.Unit.Types">GenModule</a> unit -&gt; unit <a href="src/GHC.Unit.Types.html#moduleUnit" class="link">Source</a> <a href="#v:moduleUnit" class="selflink">#</a></p><div class="doc"><p>Unit the module belongs to</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ModuleName" class="def">ModuleName</a> <a href="src/GHC.Unit.Module.Name.html#ModuleName" class="link">Source</a> <a href="#t:ModuleName" class="selflink">#</a></p><div class="doc"><p>A ModuleName is essentially a simple string, e.g. <code>Data.List</code>.</p></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:ModuleName">Instances</h4><details id="i:ModuleName" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:ModuleName:Data:1"></span> <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a></span> <a href="src/GHC.Unit.Module.Name.html#line-51" class="link">Source</a> <a href="#t:ModuleName" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:ModuleName:Data:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Unit-Module-Name.html">GHC.Unit.Module.Name</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (d -&gt; b) -&gt; d -&gt; c b) -&gt; (<span class="keyword">forall</span> g. g -&gt; c g) -&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; c <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> <a href="../base/src/Data.Data.html#gfoldl" class="link">Source</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; c (b -&gt; r) -&gt; c r) -&gt; (<span class="keyword">forall</span> r. r -&gt; c r) -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> -&gt; c <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> <a href="../base/src/Data.Data.html#gunfold" class="link">Source</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> <a href="../base/src/Data.Data.html#toConstr" class="link">Source</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; <a href="../base/Data-Data.html#t:DataType" title="Data.Data">DataType</a> <a href="../base/src/Data.Data.html#dataTypeOf" class="link">Source</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (t d)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a>) <a href="../base/src/Data.Data.html#dataCast1" class="link">Source</a> <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d e. (<a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d, <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> e) =&gt; c (t d e)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a>) <a href="../base/src/Data.Data.html#dataCast2" class="link">Source</a> <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; b -&gt; b) -&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> <a href="../base/src/Data.Data.html#gmapT" class="link">Source</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -&gt; r' -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQl" class="link">Source</a> <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: <span class="keyword">forall</span> r r'. (r' -&gt; r -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQr" class="link">Source</a> <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; [u] <a href="../base/src/Data.Data.html#gmapQ" class="link">Source</a> <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; u <a href="../base/src/Data.Data.html#gmapQi" class="link">Source</a> <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="GHC-Prelude.html#t:Monad" title="GHC.Prelude">Monad</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; m <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> <a href="../base/src/Data.Data.html#gmapM" class="link">Source</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; m <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> <a href="../base/src/Data.Data.html#gmapMp" class="link">Source</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; m <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> <a href="../base/src/Data.Data.html#gmapMo" class="link">Source</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:ModuleName:NFData:2"></span> <a href="../deepseq/Control-DeepSeq.html#t:NFData" title="Control.DeepSeq">NFData</a> <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a></span> <a href="src/GHC.Unit.Module.Name.html#line-57" class="link">Source</a> <a href="#t:ModuleName" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:ModuleName:NFData:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Unit-Module-Name.html">GHC.Unit.Module.Name</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:rnf">rnf</a> :: <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; () <a href="../deepseq/src/Control.DeepSeq.html#rnf" class="link">Source</a> <a href="#v:rnf" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:ModuleName:Uniquable:3"></span> <a href="GHC-Types-Unique.html#t:Uniquable" title="GHC.Types.Unique">Uniquable</a> <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a></span> <a href="src/GHC.Unit.Module.Name.html#line-35" class="link">Source</a> <a href="#t:ModuleName" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:ModuleName:Uniquable:3"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Unit-Module-Name.html">GHC.Unit.Module.Name</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getUnique">getUnique</a> :: <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; <a href="GHC-Types-Unique.html#t:Unique" title="GHC.Types.Unique">Unique</a> <a href="src/GHC.Types.Unique.html#getUnique" class="link">Source</a> <a href="#v:getUnique" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:ModuleName:Binary:4"></span> <a href="GHC-Utils-Binary.html#t:Binary" title="GHC.Utils.Binary">Binary</a> <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a></span> <a href="src/GHC.Unit.Module.Name.html#line-47" class="link">Source</a> <a href="#t:ModuleName" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:ModuleName:Binary:4"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Unit-Module-Name.html">GHC.Unit.Module.Name</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put_">put_</a> :: <a href="GHC-Utils-Binary.html#t:BinHandle" title="GHC.Utils.Binary">BinHandle</a> -&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; <a href="GHC-Prelude.html#t:IO" title="GHC.Prelude">IO</a> () <a href="src/GHC.Utils.Binary.html#put_" class="link">Source</a> <a href="#v:put_" class="selflink">#</a></p><p class="src"><a href="#v:put">put</a> :: <a href="GHC-Utils-Binary.html#t:BinHandle" title="GHC.Utils.Binary">BinHandle</a> -&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; <a href="GHC-Prelude.html#t:IO" title="GHC.Prelude">IO</a> (<a href="GHC-Utils-Binary.html#t:Bin" title="GHC.Utils.Binary">Bin</a> <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a>) <a href="src/GHC.Utils.Binary.html#put" class="link">Source</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="GHC-Utils-Binary.html#t:BinHandle" title="GHC.Utils.Binary">BinHandle</a> -&gt; <a href="GHC-Prelude.html#t:IO" title="GHC.Prelude">IO</a> <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> <a href="src/GHC.Utils.Binary.html#get" class="link">Source</a> <a href="#v:get" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:ModuleName:Outputable:5"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a></span> <a href="src/GHC.Unit.Module.Name.html#line-44" class="link">Source</a> <a href="#t:ModuleName" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:ModuleName:Outputable:5"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Unit-Module-Name.html">GHC.Unit.Module.Name</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:ModuleName:Eq:6"></span> <a href="GHC-Prelude.html#t:Eq" title="GHC.Prelude">Eq</a> <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a></span> <a href="src/GHC.Unit.Module.Name.html#line-38" class="link">Source</a> <a href="#t:ModuleName" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:ModuleName:Eq:6"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Unit-Module-Name.html">GHC.Unit.Module.Name</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:ModuleName:Ord:7"></span> <a href="GHC-Prelude.html#t:Ord" title="GHC.Prelude">Ord</a> <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a></span> <a href="src/GHC.Unit.Module.Name.html#line-41" class="link">Source</a> <a href="#t:ModuleName" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:ModuleName:Ord:7"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Unit-Module-Name.html">GHC.Unit.Module.Name</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; <a href="GHC-Prelude.html#t:Ordering" title="GHC.Prelude">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(&lt;)</a> :: <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(&lt;=)</a> :: <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(&gt;)</a> :: <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(&gt;=)</a> :: <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> <a href="#v:min" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><a id="v:mkModuleName" class="def">mkModuleName</a> :: <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> <a href="src/GHC.Unit.Module.Name.html#mkModuleName" class="link">Source</a> <a href="#v:mkModuleName" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:moduleNameString" class="def">moduleNameString</a> :: <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> <a href="src/GHC.Unit.Module.Name.html#moduleNameString" class="link">Source</a> <a href="#v:moduleNameString" class="selflink">#</a></p></div><a href="#g:25" id="g:25"><h2>Names</h2></a><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Name" class="def">Name</a> <a href="src/GHC.Types.Name.html#Name" class="link">Source</a> <a href="#t:Name" class="selflink">#</a></p><div class="doc"><p>A unique, unambiguous name for something, containing information about where
 that thing originated.</p></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:Name">Instances</h4><details id="i:Name" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Name:Data:1"></span> <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> <a href="GHC.html#t:Name" title="GHC">Name</a></span> <a href="src/GHC.Types.Name.html#line-524" class="link">Source</a> <a href="#t:Name" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:Name:Data:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-Name.html">GHC.Types.Name</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (d -&gt; b) -&gt; d -&gt; c b) -&gt; (<span class="keyword">forall</span> g. g -&gt; c g) -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; c <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="../base/src/Data.Data.html#gfoldl" class="link">Source</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; c (b -&gt; r) -&gt; c r) -&gt; (<span class="keyword">forall</span> r. r -&gt; c r) -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> -&gt; c <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="../base/src/Data.Data.html#gunfold" class="link">Source</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> <a href="../base/src/Data.Data.html#toConstr" class="link">Source</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="../base/Data-Data.html#t:DataType" title="Data.Data">DataType</a> <a href="../base/src/Data.Data.html#dataTypeOf" class="link">Source</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (t d)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c <a href="GHC.html#t:Name" title="GHC">Name</a>) <a href="../base/src/Data.Data.html#dataCast1" class="link">Source</a> <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d e. (<a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d, <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> e) =&gt; c (t d e)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c <a href="GHC.html#t:Name" title="GHC">Name</a>) <a href="../base/src/Data.Data.html#dataCast2" class="link">Source</a> <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; b -&gt; b) -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="../base/src/Data.Data.html#gmapT" class="link">Source</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -&gt; r' -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQl" class="link">Source</a> <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: <span class="keyword">forall</span> r r'. (r' -&gt; r -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQr" class="link">Source</a> <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; [u] <a href="../base/src/Data.Data.html#gmapQ" class="link">Source</a> <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; u <a href="../base/src/Data.Data.html#gmapQi" class="link">Source</a> <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="GHC-Prelude.html#t:Monad" title="GHC.Prelude">Monad</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; m <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="../base/src/Data.Data.html#gmapM" class="link">Source</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; m <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="../base/src/Data.Data.html#gmapMp" class="link">Source</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; m <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="../base/src/Data.Data.html#gmapMo" class="link">Source</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Name:NFData:2"></span> <a href="../deepseq/Control-DeepSeq.html#t:NFData" title="Control.DeepSeq">NFData</a> <a href="GHC.html#t:Name" title="GHC">Name</a></span> <a href="src/GHC.Types.Name.html#line-141" class="link">Source</a> <a href="#t:Name" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:Name:NFData:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-Name.html">GHC.Types.Name</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:rnf">rnf</a> :: <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; () <a href="../deepseq/src/Control.DeepSeq.html#rnf" class="link">Source</a> <a href="#v:rnf" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Name:NamedThing:3"></span> <a href="GHC.html#t:NamedThing" title="GHC">NamedThing</a> <a href="GHC.html#t:Name" title="GHC">Name</a></span> <a href="src/GHC.Types.Name.html#line-521" class="link">Source</a> <a href="#t:Name" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:Name:NamedThing:3"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-Name.html">GHC.Types.Name</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getOccName">getOccName</a> :: <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a> <a href="src/GHC.Types.Name.html#getOccName" class="link">Source</a> <a href="#v:getOccName" class="selflink">#</a></p><p class="src"><a href="#v:getName">getName</a> :: <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="src/GHC.Types.Name.html#getName" class="link">Source</a> <a href="#v:getName" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Name:HasOccName:4"></span> <a href="GHC-Types-Name-Occurrence.html#t:HasOccName" title="GHC.Types.Name.Occurrence">HasOccName</a> <a href="GHC.html#t:Name" title="GHC">Name</a></span> <a href="src/GHC.Types.Name.html#line-195" class="link">Source</a> <a href="#t:Name" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:Name:HasOccName:4"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-Name.html">GHC.Types.Name</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:occName">occName</a> :: <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a> <a href="src/GHC.Types.Name.Occurrence.html#occName" class="link">Source</a> <a href="#v:occName" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Name:Uniquable:5"></span> <a href="GHC-Types-Unique.html#t:Uniquable" title="GHC.Types.Unique">Uniquable</a> <a href="GHC.html#t:Name" title="GHC">Name</a></span> <a href="src/GHC.Types.Name.html#line-518" class="link">Source</a> <a href="#t:Name" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:Name:Uniquable:5"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-Name.html">GHC.Types.Name</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getUnique">getUnique</a> :: <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC-Types-Unique.html#t:Unique" title="GHC.Types.Unique">Unique</a> <a href="src/GHC.Types.Unique.html#getUnique" class="link">Source</a> <a href="#v:getUnique" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Name:Binary:6"></span> <a href="GHC-Utils-Binary.html#t:Binary" title="GHC.Utils.Binary">Binary</a> <a href="GHC.html#t:Name" title="GHC">Name</a></span> <a href="src/GHC.Types.Name.html#line-542" class="link">Source</a> <a href="#t:Name" class="selflink">#</a></td><td class="doc"><p>Assumes that the <code><a href="GHC.html#t:Name" title="GHC">Name</a></code> is a non-binding one. See
 <code><a href="GHC-Iface-Syntax.html#v:putIfaceTopBndr" title="GHC.Iface.Syntax">putIfaceTopBndr</a></code> and <code><a href="GHC-Iface-Syntax.html#v:getIfaceTopBndr" title="GHC.Iface.Syntax">getIfaceTopBndr</a></code> for
 serializing binding <code><a href="GHC.html#t:Name" title="GHC">Name</a></code>s. See <code><a href="GHC-Utils-Binary.html#t:UserData" title="GHC.Utils.Binary">UserData</a></code> for the rationale for this
 distinction.</p></td></tr><tr><td colspan="2"><details id="i:id:Name:Binary:6"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-Name.html">GHC.Types.Name</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put_">put_</a> :: <a href="GHC-Utils-Binary.html#t:BinHandle" title="GHC.Utils.Binary">BinHandle</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC-Prelude.html#t:IO" title="GHC.Prelude">IO</a> () <a href="src/GHC.Utils.Binary.html#put_" class="link">Source</a> <a href="#v:put_" class="selflink">#</a></p><p class="src"><a href="#v:put">put</a> :: <a href="GHC-Utils-Binary.html#t:BinHandle" title="GHC.Utils.Binary">BinHandle</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC-Prelude.html#t:IO" title="GHC.Prelude">IO</a> (<a href="GHC-Utils-Binary.html#t:Bin" title="GHC.Utils.Binary">Bin</a> <a href="GHC.html#t:Name" title="GHC">Name</a>) <a href="src/GHC.Utils.Binary.html#put" class="link">Source</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="GHC-Utils-Binary.html#t:BinHandle" title="GHC.Utils.Binary">BinHandle</a> -&gt; <a href="GHC-Prelude.html#t:IO" title="GHC.Prelude">IO</a> <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="src/GHC.Utils.Binary.html#get" class="link">Source</a> <a href="#v:get" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Name:Outputable:7"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC.html#t:Name" title="GHC">Name</a></span> <a href="src/GHC.Types.Name.html#line-559" class="link">Source</a> <a href="#t:Name" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:Name:Outputable:7"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-Name.html">GHC.Types.Name</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Name:OutputableBndr:8"></span> <a href="GHC-Utils-Outputable.html#t:OutputableBndr" title="GHC.Utils.Outputable">OutputableBndr</a> <a href="GHC.html#t:Name" title="GHC">Name</a></span> <a href="src/GHC.Types.Name.html#line-562" class="link">Source</a> <a href="#t:Name" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:Name:OutputableBndr:8"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-Name.html">GHC.Types.Name</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:pprBndr">pprBndr</a> :: <a href="GHC-Utils-Outputable.html#t:BindingSite" title="GHC.Utils.Outputable">BindingSite</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprBndr" class="link">Source</a> <a href="#v:pprBndr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrefixOcc">pprPrefixOcc</a> :: <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrefixOcc" class="link">Source</a> <a href="#v:pprPrefixOcc" class="selflink">#</a></p><p class="src"><a href="#v:pprInfixOcc">pprInfixOcc</a> :: <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprInfixOcc" class="link">Source</a> <a href="#v:pprInfixOcc" class="selflink">#</a></p><p class="src"><a href="#v:bndrIsJoin_maybe">bndrIsJoin_maybe</a> :: <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> <a href="src/GHC.Utils.Outputable.html#bndrIsJoin_maybe" class="link">Source</a> <a href="#v:bndrIsJoin_maybe" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Name:Eq:9"></span> <a href="GHC-Prelude.html#t:Eq" title="GHC.Prelude">Eq</a> <a href="GHC.html#t:Name" title="GHC">Name</a></span> <a href="src/GHC.Types.Name.html#line-500" class="link">Source</a> <a href="#t:Name" class="selflink">#</a></td><td class="doc"><p>The same comments as for <code><a href="GHC.html#t:Name" title="GHC">Name</a></code>'s <code><a href="GHC-Prelude.html#t:Ord" title="GHC.Prelude">Ord</a></code> instance apply.</p></td></tr><tr><td colspan="2"><details id="i:id:Name:Eq:9"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-Name.html">GHC.Types.Name</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Name:Ord:10"></span> <a href="GHC-Prelude.html#t:Ord" title="GHC.Prelude">Ord</a> <a href="GHC.html#t:Name" title="GHC">Name</a></span> <a href="src/GHC.Types.Name.html#line-511" class="link">Source</a> <a href="#t:Name" class="selflink">#</a></td><td class="doc"><p><strong>Caution</strong>: This instance is implemented via <code><a href="GHC-Types-Unique.html#v:nonDetCmpUnique" title="GHC.Types.Unique">nonDetCmpUnique</a></code>, which
 means that the ordering is not stable across deserialization or rebuilds.</p><p>See <code><a href="GHC-Types-Unique.html#v:nonDetCmpUnique" title="GHC.Types.Unique">nonDetCmpUnique</a></code> for further information, and trac #15240 for a bug
 caused by improper use of this instance.</p></td></tr><tr><td colspan="2"><details id="i:id:Name:Ord:10"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-Name.html">GHC.Types.Name</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC-Prelude.html#t:Ordering" title="GHC.Prelude">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(&lt;)</a> :: <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(&lt;=)</a> :: <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(&gt;)</a> :: <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(&gt;=)</a> :: <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="#v:min" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><a id="v:isExternalName" class="def">isExternalName</a> :: <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Types.Name.html#isExternalName" class="link">Source</a> <a href="#v:isExternalName" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:nameModule" class="def">nameModule</a> :: <a href="GHC-Utils-Misc.html#t:HasDebugCallStack" title="GHC.Utils.Misc">HasDebugCallStack</a> =&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC.html#t:Module" title="GHC">Module</a> <a href="src/GHC.Types.Name.html#nameModule" class="link">Source</a> <a href="#v:nameModule" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:pprParenSymName" class="def">pprParenSymName</a> :: <a href="GHC.html#t:NamedThing" title="GHC">NamedThing</a> a =&gt; a -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.html#pprParenSymName" class="link">Source</a> <a href="#v:pprParenSymName" class="selflink">#</a></p><div class="doc"><p>print a <code><a href="GHC.html#t:NamedThing" title="GHC">NamedThing</a></code>, adding parentheses if the name is an operator.</p></div></div><div class="top"><p class="src"><a id="v:nameSrcSpan" class="def">nameSrcSpan</a> :: <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> <a href="src/GHC.Types.Name.html#nameSrcSpan" class="link">Source</a> <a href="#v:nameSrcSpan" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:NamedThing" class="def">NamedThing</a> a <span class="keyword">where</span> <a href="src/GHC.Types.Name.html#NamedThing" class="link">Source</a> <a href="#t:NamedThing" class="selflink">#</a></p><div class="doc"><p>A class allowing convenient access to the <code><a href="GHC.html#t:Name" title="GHC">Name</a></code> of various datatypes</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="GHC.html#v:getName" title="GHC">getName</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:getOccName" class="def">getOccName</a> :: a -&gt; <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a> <a href="src/GHC.Types.Name.html#getOccName" class="link">Source</a> <a href="#v:getOccName" class="selflink">#</a></p><p class="src"><a id="v:getName" class="def">getName</a> :: a -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="src/GHC.Types.Name.html#getName" class="link">Source</a> <a href="#v:getName" class="selflink">#</a></p></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:NamedThing">Instances</h4><details id="i:NamedThing" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:NamedThing:NamedThing:1"></span> <a href="GHC.html#t:NamedThing" title="GHC">NamedThing</a> <a href="GHC.html#t:Class" title="GHC">Class</a></span> <a href="src/GHC.Core.Class.html#line-348" class="link">Source</a> <a href="#t:NamedThing" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:ic:NamedThing:NamedThing:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-Class.html">GHC.Core.Class</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getOccName">getOccName</a> :: <a href="GHC.html#t:Class" title="GHC">Class</a> -&gt; <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a> <a href="src/GHC.Types.Name.html#getOccName" class="link">Source</a> <a href="#v:getOccName" class="selflink">#</a></p><p class="src"><a href="#v:getName">getName</a> :: <a href="GHC.html#t:Class" title="GHC">Class</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="src/GHC.Types.Name.html#getName" class="link">Source</a> <a href="#v:getName" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:NamedThing:NamedThing:2"></span> <a href="GHC.html#t:NamedThing" title="GHC">NamedThing</a> <a href="GHC-Core-ConLike.html#t:ConLike" title="GHC.Core.ConLike">ConLike</a></span> <a href="src/GHC.Core.ConLike.html#line-80" class="link">Source</a> <a href="#t:NamedThing" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:ic:NamedThing:NamedThing:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-ConLike.html">GHC.Core.ConLike</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getOccName">getOccName</a> :: <a href="GHC-Core-ConLike.html#t:ConLike" title="GHC.Core.ConLike">ConLike</a> -&gt; <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a> <a href="src/GHC.Types.Name.html#getOccName" class="link">Source</a> <a href="#v:getOccName" class="selflink">#</a></p><p class="src"><a href="#v:getName">getName</a> :: <a href="GHC-Core-ConLike.html#t:ConLike" title="GHC.Core.ConLike">ConLike</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="src/GHC.Types.Name.html#getName" class="link">Source</a> <a href="#v:getName" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:NamedThing:NamedThing:3"></span> <a href="GHC.html#t:NamedThing" title="GHC">NamedThing</a> <a href="GHC.html#t:DataCon" title="GHC">DataCon</a></span> <a href="src/GHC.Core.DataCon.html#line-846" class="link">Source</a> <a href="#t:NamedThing" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:ic:NamedThing:NamedThing:3"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-DataCon.html">GHC.Core.DataCon</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getOccName">getOccName</a> :: <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a> <a href="src/GHC.Types.Name.html#getOccName" class="link">Source</a> <a href="#v:getOccName" class="selflink">#</a></p><p class="src"><a href="#v:getName">getName</a> :: <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="src/GHC.Types.Name.html#getName" class="link">Source</a> <a href="#v:getName" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:NamedThing:NamedThing:4"></span> <a href="GHC.html#t:NamedThing" title="GHC">NamedThing</a> <a href="GHC.html#t:FamInst" title="GHC">FamInst</a></span> <a href="src/GHC.Core.FamInstEnv.html#line-216" class="link">Source</a> <a href="#t:NamedThing" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:ic:NamedThing:NamedThing:4"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-FamInstEnv.html">GHC.Core.FamInstEnv</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getOccName">getOccName</a> :: <a href="GHC.html#t:FamInst" title="GHC">FamInst</a> -&gt; <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a> <a href="src/GHC.Types.Name.html#getOccName" class="link">Source</a> <a href="#v:getOccName" class="selflink">#</a></p><p class="src"><a href="#v:getName">getName</a> :: <a href="GHC.html#t:FamInst" title="GHC">FamInst</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="src/GHC.Types.Name.html#getName" class="link">Source</a> <a href="#v:getName" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:NamedThing:NamedThing:5"></span> <a href="GHC.html#t:NamedThing" title="GHC">NamedThing</a> <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a></span> <a href="src/GHC.Core.InstEnv.html#line-211" class="link">Source</a> <a href="#t:NamedThing" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:ic:NamedThing:NamedThing:5"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-InstEnv.html">GHC.Core.InstEnv</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getOccName">getOccName</a> :: <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a> -&gt; <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a> <a href="src/GHC.Types.Name.html#getOccName" class="link">Source</a> <a href="#v:getOccName" class="selflink">#</a></p><p class="src"><a href="#v:getName">getName</a> :: <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="src/GHC.Types.Name.html#getName" class="link">Source</a> <a href="#v:getName" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:NamedThing:NamedThing:6"></span> <a href="GHC.html#t:NamedThing" title="GHC">NamedThing</a> <a href="GHC-Core-PatSyn.html#t:PatSyn" title="GHC.Core.PatSyn">PatSyn</a></span> <a href="src/GHC.Core.PatSyn.html#line-331" class="link">Source</a> <a href="#t:NamedThing" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:ic:NamedThing:NamedThing:6"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-PatSyn.html">GHC.Core.PatSyn</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getOccName">getOccName</a> :: <a href="GHC-Core-PatSyn.html#t:PatSyn" title="GHC.Core.PatSyn">PatSyn</a> -&gt; <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a> <a href="src/GHC.Types.Name.html#getOccName" class="link">Source</a> <a href="#v:getOccName" class="selflink">#</a></p><p class="src"><a href="#v:getName">getName</a> :: <a href="GHC-Core-PatSyn.html#t:PatSyn" title="GHC.Core.PatSyn">PatSyn</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="src/GHC.Types.Name.html#getName" class="link">Source</a> <a href="#v:getName" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:NamedThing:NamedThing:7"></span> <a href="GHC.html#t:NamedThing" title="GHC">NamedThing</a> <a href="GHC.html#t:TyThing" title="GHC">TyThing</a></span> <a href="src/GHC.Core.TyCo.Rep.html#line-143" class="link">Source</a> <a href="#t:NamedThing" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:ic:NamedThing:NamedThing:7"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-TyCo-Rep.html">GHC.Core.TyCo.Rep</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getOccName">getOccName</a> :: <a href="GHC.html#t:TyThing" title="GHC">TyThing</a> -&gt; <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a> <a href="src/GHC.Types.Name.html#getOccName" class="link">Source</a> <a href="#v:getOccName" class="selflink">#</a></p><p class="src"><a href="#v:getName">getName</a> :: <a href="GHC.html#t:TyThing" title="GHC">TyThing</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="src/GHC.Types.Name.html#getName" class="link">Source</a> <a href="#v:getName" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:NamedThing:NamedThing:8"></span> <a href="GHC.html#t:NamedThing" title="GHC">NamedThing</a> <a href="GHC.html#t:TyCon" title="GHC">TyCon</a></span> <a href="src/GHC.Core.TyCon.html#line-2681" class="link">Source</a> <a href="#t:NamedThing" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:ic:NamedThing:NamedThing:8"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-TyCon.html">GHC.Core.TyCon</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getOccName">getOccName</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a> <a href="src/GHC.Types.Name.html#getOccName" class="link">Source</a> <a href="#v:getOccName" class="selflink">#</a></p><p class="src"><a href="#v:getName">getName</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="src/GHC.Types.Name.html#getName" class="link">Source</a> <a href="#v:getName" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:NamedThing:NamedThing:9"></span> <a href="GHC.html#t:NamedThing" title="GHC">NamedThing</a> <a href="GHC-Iface-Syntax.html#t:IfaceClassOp" title="GHC.Iface.Syntax">IfaceClassOp</a></span> <a href="src/GHC.Iface.Syntax.html#line-681" class="link">Source</a> <a href="#t:NamedThing" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:ic:NamedThing:NamedThing:9"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Iface-Syntax.html">GHC.Iface.Syntax</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getOccName">getOccName</a> :: <a href="GHC-Iface-Syntax.html#t:IfaceClassOp" title="GHC.Iface.Syntax">IfaceClassOp</a> -&gt; <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a> <a href="src/GHC.Types.Name.html#getOccName" class="link">Source</a> <a href="#v:getOccName" class="selflink">#</a></p><p class="src"><a href="#v:getName">getName</a> :: <a href="GHC-Iface-Syntax.html#t:IfaceClassOp" title="GHC.Iface.Syntax">IfaceClassOp</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="src/GHC.Types.Name.html#getName" class="link">Source</a> <a href="#v:getName" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:NamedThing:NamedThing:10"></span> <a href="GHC.html#t:NamedThing" title="GHC">NamedThing</a> <a href="GHC-Iface-Syntax.html#t:IfaceConDecl" title="GHC.Iface.Syntax">IfaceConDecl</a></span> <a href="src/GHC.Iface.Syntax.html#line-687" class="link">Source</a> <a href="#t:NamedThing" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:ic:NamedThing:NamedThing:10"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Iface-Syntax.html">GHC.Iface.Syntax</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getOccName">getOccName</a> :: <a href="GHC-Iface-Syntax.html#t:IfaceConDecl" title="GHC.Iface.Syntax">IfaceConDecl</a> -&gt; <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a> <a href="src/GHC.Types.Name.html#getOccName" class="link">Source</a> <a href="#v:getOccName" class="selflink">#</a></p><p class="src"><a href="#v:getName">getName</a> :: <a href="GHC-Iface-Syntax.html#t:IfaceConDecl" title="GHC.Iface.Syntax">IfaceConDecl</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="src/GHC.Types.Name.html#getName" class="link">Source</a> <a href="#v:getName" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:NamedThing:NamedThing:11"></span> <a href="GHC.html#t:NamedThing" title="GHC">NamedThing</a> <a href="GHC-Iface-Syntax.html#t:IfaceDecl" title="GHC.Iface.Syntax">IfaceDecl</a></span> <a href="src/GHC.Iface.Syntax.html#line-693" class="link">Source</a> <a href="#t:NamedThing" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:ic:NamedThing:NamedThing:11"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Iface-Syntax.html">GHC.Iface.Syntax</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getOccName">getOccName</a> :: <a href="GHC-Iface-Syntax.html#t:IfaceDecl" title="GHC.Iface.Syntax">IfaceDecl</a> -&gt; <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a> <a href="src/GHC.Types.Name.html#getOccName" class="link">Source</a> <a href="#v:getOccName" class="selflink">#</a></p><p class="src"><a href="#v:getName">getName</a> :: <a href="GHC-Iface-Syntax.html#t:IfaceDecl" title="GHC.Iface.Syntax">IfaceDecl</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="src/GHC.Types.Name.html#getName" class="link">Source</a> <a href="#v:getName" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:NamedThing:NamedThing:12"></span> <a href="GHC.html#t:NamedThing" title="GHC">NamedThing</a> <a href="GHC-Tc-Errors-Hole-FitTypes.html#t:HoleFitCandidate" title="GHC.Tc.Errors.Hole.FitTypes">HoleFitCandidate</a></span> <a href="src/GHC.Tc.Errors.Hole.FitTypes.html#line-55" class="link">Source</a> <a href="#t:NamedThing" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:ic:NamedThing:NamedThing:12"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Tc-Errors-Hole-FitTypes.html">GHC.Tc.Errors.Hole.FitTypes</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getOccName">getOccName</a> :: <a href="GHC-Tc-Errors-Hole-FitTypes.html#t:HoleFitCandidate" title="GHC.Tc.Errors.Hole.FitTypes">HoleFitCandidate</a> -&gt; <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a> <a href="src/GHC.Types.Name.html#getOccName" class="link">Source</a> <a href="#v:getOccName" class="selflink">#</a></p><p class="src"><a href="#v:getName">getName</a> :: <a href="GHC-Tc-Errors-Hole-FitTypes.html#t:HoleFitCandidate" title="GHC.Tc.Errors.Hole.FitTypes">HoleFitCandidate</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="src/GHC.Types.Name.html#getName" class="link">Source</a> <a href="#v:getName" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:NamedThing:NamedThing:13"></span> <a href="GHC.html#t:NamedThing" title="GHC">NamedThing</a> <a href="GHC.html#t:Name" title="GHC">Name</a></span> <a href="src/GHC.Types.Name.html#line-521" class="link">Source</a> <a href="#t:NamedThing" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:ic:NamedThing:NamedThing:13"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-Name.html">GHC.Types.Name</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getOccName">getOccName</a> :: <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a> <a href="src/GHC.Types.Name.html#getOccName" class="link">Source</a> <a href="#v:getOccName" class="selflink">#</a></p><p class="src"><a href="#v:getName">getName</a> :: <a href="GHC.html#t:Name" title="GHC">Name</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="src/GHC.Types.Name.html#getName" class="link">Source</a> <a href="#v:getName" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:NamedThing:NamedThing:14"></span> <a href="GHC.html#t:NamedThing" title="GHC">NamedThing</a> <a href="GHC-Types-Var.html#t:Var" title="GHC.Types.Var">Var</a></span> <a href="src/GHC.Types.Var.html#line-352" class="link">Source</a> <a href="#t:NamedThing" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:ic:NamedThing:NamedThing:14"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-Var.html">GHC.Types.Var</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getOccName">getOccName</a> :: <a href="GHC-Types-Var.html#t:Var" title="GHC.Types.Var">Var</a> -&gt; <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a> <a href="src/GHC.Types.Name.html#getOccName" class="link">Source</a> <a href="#v:getOccName" class="selflink">#</a></p><p class="src"><a href="#v:getName">getName</a> :: <a href="GHC-Types-Var.html#t:Var" title="GHC.Types.Var">Var</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="src/GHC.Types.Name.html#getName" class="link">Source</a> <a href="#v:getName" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:NamedThing:NamedThing:15"></span> <a href="GHC.html#t:NamedThing" title="GHC">NamedThing</a> (<a href="GHC-Core-Coercion-Axiom.html#t:CoAxiom" title="GHC.Core.Coercion.Axiom">CoAxiom</a> br)</span> <a href="src/GHC.Core.Coercion.Axiom.html#line-466" class="link">Source</a> <a href="#t:NamedThing" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:ic:NamedThing:NamedThing:15"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-Coercion-Axiom.html">GHC.Core.Coercion.Axiom</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getOccName">getOccName</a> :: <a href="GHC-Core-Coercion-Axiom.html#t:CoAxiom" title="GHC.Core.Coercion.Axiom">CoAxiom</a> br -&gt; <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a> <a href="src/GHC.Types.Name.html#getOccName" class="link">Source</a> <a href="#v:getOccName" class="selflink">#</a></p><p class="src"><a href="#v:getName">getName</a> :: <a href="GHC-Core-Coercion-Axiom.html#t:CoAxiom" title="GHC.Core.Coercion.Axiom">CoAxiom</a> br -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="src/GHC.Types.Name.html#getName" class="link">Source</a> <a href="#v:getName" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:NamedThing:NamedThing:16"></span> <a href="GHC.html#t:NamedThing" title="GHC">NamedThing</a> e =&gt; <a href="GHC.html#t:NamedThing" title="GHC">NamedThing</a> (<a href="GHC.html#t:Located" title="GHC">Located</a> e)</span> <a href="src/GHC.Types.Name.html#line-708" class="link">Source</a> <a href="#t:NamedThing" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:ic:NamedThing:NamedThing:16"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-Name.html">GHC.Types.Name</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getOccName">getOccName</a> :: <a href="GHC.html#t:Located" title="GHC">Located</a> e -&gt; <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a> <a href="src/GHC.Types.Name.html#getOccName" class="link">Source</a> <a href="#v:getOccName" class="selflink">#</a></p><p class="src"><a href="#v:getName">getName</a> :: <a href="GHC.html#t:Located" title="GHC">Located</a> e -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="src/GHC.Types.Name.html#getName" class="link">Source</a> <a href="#v:getName" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:NamedThing:NamedThing:17"></span> <a href="GHC.html#t:NamedThing" title="GHC">NamedThing</a> (<a href="GHC-Hs-Type.html#t:HsTyVarBndr" title="GHC.Hs.Type">HsTyVarBndr</a> flag <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a>)</span> <a href="src/GHC.Hs.Type.html#line-685" class="link">Source</a> <a href="#t:NamedThing" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:ic:NamedThing:NamedThing:17"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Hs-Type.html">GHC.Hs.Type</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getOccName">getOccName</a> :: <a href="GHC-Hs-Type.html#t:HsTyVarBndr" title="GHC.Hs.Type">HsTyVarBndr</a> flag <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a> -&gt; <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a> <a href="src/GHC.Types.Name.html#getOccName" class="link">Source</a> <a href="#v:getOccName" class="selflink">#</a></p><p class="src"><a href="#v:getName">getName</a> :: <a href="GHC-Hs-Type.html#t:HsTyVarBndr" title="GHC.Hs.Type">HsTyVarBndr</a> flag <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="src/GHC.Types.Name.html#getName" class="link">Source</a> <a href="#v:getName" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:NamedThing:NamedThing:18"></span> <a href="GHC.html#t:NamedThing" title="GHC">NamedThing</a> tv =&gt; <a href="GHC.html#t:NamedThing" title="GHC">NamedThing</a> (<a href="GHC-Types-Var.html#t:VarBndr" title="GHC.Types.Var">VarBndr</a> tv flag)</span> <a href="src/GHC.Types.Var.html#line-691" class="link">Source</a> <a href="#t:NamedThing" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:ic:NamedThing:NamedThing:18"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-Var.html">GHC.Types.Var</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getOccName">getOccName</a> :: <a href="GHC-Types-Var.html#t:VarBndr" title="GHC.Types.Var">VarBndr</a> tv flag -&gt; <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a> <a href="src/GHC.Types.Name.html#getOccName" class="link">Source</a> <a href="#v:getOccName" class="selflink">#</a></p><p class="src"><a href="#v:getName">getName</a> :: <a href="GHC-Types-Var.html#t:VarBndr" title="GHC.Types.Var">VarBndr</a> tv flag -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="src/GHC.Types.Name.html#getName" class="link">Source</a> <a href="#v:getName" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:RdrName" class="def">RdrName</a> <a href="src/GHC.Types.Name.Reader.html#RdrName" class="link">Source</a> <a href="#t:RdrName" class="selflink">#</a></p><div class="doc"><p>Reader Name</p><p>Do not use the data constructors of RdrName directly: prefer the family
 of functions that creates them, such as <code><a href="GHC-Types-Name-Reader.html#v:mkRdrUnqual" title="GHC.Types.Name.Reader">mkRdrUnqual</a></code></p><ul><li>Note: A Located RdrName will only have API Annotations if it is a
         compound one,
   e.g.</li></ul><pre>`bar`
( ~ )</pre><ul><li><code><a href="GHC-Parser-Annotation.html#v:AnnKeywordId" title="GHC.Parser.Annotation">AnnKeywordId</a></code> : <code><a href="GHC-Parser-Annotation.html#v:AnnType" title="GHC.Parser.Annotation">AnnType</a></code>,
           <code><a href="GHC-Parser-Annotation.html#v:AnnOpen" title="GHC.Parser.Annotation">AnnOpen</a></code>  <code>'('</code> or <code>'['</code> or <code>'[:'</code>,
           <code><a href="GHC-Parser-Annotation.html#v:AnnClose" title="GHC.Parser.Annotation">AnnClose</a></code> <code>')'</code> or <code>']'</code> or <code>':]'</code>,,
           <code><a href="GHC-Parser-Annotation.html#v:AnnBackquote" title="GHC.Parser.Annotation">AnnBackquote</a></code> <code>'`'</code>,
           <code><a href="GHC-Parser-Annotation.html#v:AnnVal" title="GHC.Parser.Annotation">AnnVal</a></code>
           <code><a href="GHC-Parser-Annotation.html#v:AnnTilde" title="GHC.Parser.Annotation">AnnTilde</a></code>,</li></ul></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Unqual" class="def">Unqual</a> <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a></td><td class="doc"><p>Unqualified  name</p><p>Used for ordinary, unqualified occurrences, e.g. <code>x</code>, <code>y</code> or <code>Foo</code>.
 Create such a <code><a href="GHC.html#t:RdrName" title="GHC">RdrName</a></code> with <code><a href="GHC-Types-Name-Reader.html#v:mkRdrUnqual" title="GHC.Types.Name.Reader">mkRdrUnqual</a></code></p></td></tr><tr><td class="src"><a id="v:Qual" class="def">Qual</a> <a href="GHC.html#t:ModuleName" title="GHC">ModuleName</a> <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a></td><td class="doc"><p>Qualified name</p><p>A qualified name written by the user in
 <em>source</em> code.  The module isn't necessarily
 the module where the thing is defined;
 just the one from which it is imported.
 Examples are <code>Bar.x</code>, <code>Bar.y</code> or <code>Bar.Foo</code>.
 Create such a <code><a href="GHC.html#t:RdrName" title="GHC">RdrName</a></code> with <code><a href="GHC-Types-Name-Reader.html#v:mkRdrQual" title="GHC.Types.Name.Reader">mkRdrQual</a></code></p></td></tr></table></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:RdrName">Instances</h4><details id="i:RdrName" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:RdrName:Data:1"></span> <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> <a href="GHC.html#t:RdrName" title="GHC">RdrName</a></span> <a href="src/GHC.Types.Name.Reader.html#line-158" class="link">Source</a> <a href="#t:RdrName" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:RdrName:Data:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-Name-Reader.html">GHC.Types.Name.Reader</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (d -&gt; b) -&gt; d -&gt; c b) -&gt; (<span class="keyword">forall</span> g. g -&gt; c g) -&gt; <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; c <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> <a href="../base/src/Data.Data.html#gfoldl" class="link">Source</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; c (b -&gt; r) -&gt; c r) -&gt; (<span class="keyword">forall</span> r. r -&gt; c r) -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> -&gt; c <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> <a href="../base/src/Data.Data.html#gunfold" class="link">Source</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> <a href="../base/src/Data.Data.html#toConstr" class="link">Source</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; <a href="../base/Data-Data.html#t:DataType" title="Data.Data">DataType</a> <a href="../base/src/Data.Data.html#dataTypeOf" class="link">Source</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (t d)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c <a href="GHC.html#t:RdrName" title="GHC">RdrName</a>) <a href="../base/src/Data.Data.html#dataCast1" class="link">Source</a> <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d e. (<a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d, <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> e) =&gt; c (t d e)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c <a href="GHC.html#t:RdrName" title="GHC">RdrName</a>) <a href="../base/src/Data.Data.html#dataCast2" class="link">Source</a> <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; b -&gt; b) -&gt; <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> <a href="../base/src/Data.Data.html#gmapT" class="link">Source</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -&gt; r' -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQl" class="link">Source</a> <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: <span class="keyword">forall</span> r r'. (r' -&gt; r -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQr" class="link">Source</a> <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; [u] <a href="../base/src/Data.Data.html#gmapQ" class="link">Source</a> <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; u <a href="../base/src/Data.Data.html#gmapQi" class="link">Source</a> <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="GHC-Prelude.html#t:Monad" title="GHC.Prelude">Monad</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; m <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> <a href="../base/src/Data.Data.html#gmapM" class="link">Source</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; m <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> <a href="../base/src/Data.Data.html#gmapMp" class="link">Source</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; m <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> <a href="../base/src/Data.Data.html#gmapMo" class="link">Source</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:RdrName:DisambInfixOp:2"></span> <a href="GHC-Parser-PostProcess.html#t:DisambInfixOp" title="GHC.Parser.PostProcess">DisambInfixOp</a> <a href="GHC.html#t:RdrName" title="GHC">RdrName</a></span> <a href="src/GHC.Parser.PostProcess.html#line-1704" class="link">Source</a> <a href="#t:DisambInfixOp" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:RdrName:DisambInfixOp:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Parser-PostProcess.html">GHC.Parser.PostProcess</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mkHsVarOpPV">mkHsVarOpPV</a> :: <a href="GHC.html#t:Located" title="GHC">Located</a> <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; <a href="GHC-Parser-PostProcess.html#t:PV" title="GHC.Parser.PostProcess">PV</a> (<a href="GHC.html#t:Located" title="GHC">Located</a> <a href="GHC.html#t:RdrName" title="GHC">RdrName</a>) <a href="src/GHC.Parser.PostProcess.html#mkHsVarOpPV" class="link">Source</a> <a href="#v:mkHsVarOpPV" class="selflink">#</a></p><p class="src"><a href="#v:mkHsConOpPV">mkHsConOpPV</a> :: <a href="GHC.html#t:Located" title="GHC">Located</a> <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; <a href="GHC-Parser-PostProcess.html#t:PV" title="GHC.Parser.PostProcess">PV</a> (<a href="GHC.html#t:Located" title="GHC">Located</a> <a href="GHC.html#t:RdrName" title="GHC">RdrName</a>) <a href="src/GHC.Parser.PostProcess.html#mkHsConOpPV" class="link">Source</a> <a href="#v:mkHsConOpPV" class="selflink">#</a></p><p class="src"><a href="#v:mkHsInfixHolePV">mkHsInfixHolePV</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC-Parser-PostProcess.html#t:PV" title="GHC.Parser.PostProcess">PV</a> (<a href="GHC.html#t:Located" title="GHC">Located</a> <a href="GHC.html#t:RdrName" title="GHC">RdrName</a>) <a href="src/GHC.Parser.PostProcess.html#mkHsInfixHolePV" class="link">Source</a> <a href="#v:mkHsInfixHolePV" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:RdrName:HasOccName:3"></span> <a href="GHC-Types-Name-Occurrence.html#t:HasOccName" title="GHC.Types.Name.Occurrence">HasOccName</a> <a href="GHC.html#t:RdrName" title="GHC">RdrName</a></span> <a href="src/GHC.Types.Name.Reader.html#line-168" class="link">Source</a> <a href="#t:RdrName" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:RdrName:HasOccName:3"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-Name-Reader.html">GHC.Types.Name.Reader</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:occName">occName</a> :: <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a> <a href="src/GHC.Types.Name.Occurrence.html#occName" class="link">Source</a> <a href="#v:occName" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:RdrName:Outputable:4"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC.html#t:RdrName" title="GHC">RdrName</a></span> <a href="src/GHC.Types.Name.Reader.html#line-275" class="link">Source</a> <a href="#t:RdrName" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:RdrName:Outputable:4"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-Name-Reader.html">GHC.Types.Name.Reader</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:RdrName:OutputableBndr:5"></span> <a href="GHC-Utils-Outputable.html#t:OutputableBndr" title="GHC.Utils.Outputable">OutputableBndr</a> <a href="GHC.html#t:RdrName" title="GHC">RdrName</a></span> <a href="src/GHC.Types.Name.Reader.html#line-281" class="link">Source</a> <a href="#t:RdrName" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:RdrName:OutputableBndr:5"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-Name-Reader.html">GHC.Types.Name.Reader</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:pprBndr">pprBndr</a> :: <a href="GHC-Utils-Outputable.html#t:BindingSite" title="GHC.Utils.Outputable">BindingSite</a> -&gt; <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprBndr" class="link">Source</a> <a href="#v:pprBndr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrefixOcc">pprPrefixOcc</a> :: <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrefixOcc" class="link">Source</a> <a href="#v:pprPrefixOcc" class="selflink">#</a></p><p class="src"><a href="#v:pprInfixOcc">pprInfixOcc</a> :: <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprInfixOcc" class="link">Source</a> <a href="#v:pprInfixOcc" class="selflink">#</a></p><p class="src"><a href="#v:bndrIsJoin_maybe">bndrIsJoin_maybe</a> :: <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> <a href="src/GHC.Utils.Outputable.html#bndrIsJoin_maybe" class="link">Source</a> <a href="#v:bndrIsJoin_maybe" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:RdrName:Eq:6"></span> <a href="GHC-Prelude.html#t:Eq" title="GHC.Prelude">Eq</a> <a href="GHC.html#t:RdrName" title="GHC">RdrName</a></span> <a href="src/GHC.Types.Name.Reader.html#line-293" class="link">Source</a> <a href="#t:RdrName" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:RdrName:Eq:6"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-Name-Reader.html">GHC.Types.Name.Reader</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:RdrName:Ord:7"></span> <a href="GHC-Prelude.html#t:Ord" title="GHC.Prelude">Ord</a> <a href="GHC.html#t:RdrName" title="GHC">RdrName</a></span> <a href="src/GHC.Types.Name.Reader.html#line-304" class="link">Source</a> <a href="#t:RdrName" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:RdrName:Ord:7"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-Name-Reader.html">GHC.Types.Name.Reader</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; <a href="GHC-Prelude.html#t:Ordering" title="GHC.Prelude">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(&lt;)</a> :: <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(&lt;=)</a> :: <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(&gt;)</a> :: <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(&gt;=)</a> :: <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> -&gt; <a href="GHC.html#t:RdrName" title="GHC">RdrName</a> <a href="#v:min" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><a href="#g:26" id="g:26"><h2>Identifiers</h2></a><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:Id" class="def">Id</a> = <a href="GHC-Types-Var.html#t:Var" title="GHC.Types.Var">Var</a> <a href="src/GHC.Types.Var.html#Id" class="link">Source</a> <a href="#t:Id" class="selflink">#</a></p><div class="doc"><p>Identifier</p></div></div><div class="top"><p class="src"><a id="v:idType" class="def">idType</a> :: <a href="GHC.html#t:Id" title="GHC">Id</a> -&gt; <a href="GHC.html#t:Kind" title="GHC">Kind</a> <a href="src/GHC.Types.Id.html#idType" class="link">Source</a> <a href="#v:idType" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:isImplicitId" class="def">isImplicitId</a> :: <a href="GHC.html#t:Id" title="GHC">Id</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Types.Id.html#isImplicitId" class="link">Source</a> <a href="#v:isImplicitId" class="selflink">#</a></p><div class="doc"><p><code><a href="GHC.html#v:isImplicitId" title="GHC">isImplicitId</a></code> tells whether an <code><a href="GHC.html#t:Id" title="GHC">Id</a></code>s info is implied by other
 declarations, so we don't need to put its signature in an interface
 file, even if it's mentioned in some other interface unfolding.</p></div></div><div class="top"><p class="src"><a id="v:isDeadBinder" class="def">isDeadBinder</a> :: <a href="GHC.html#t:Id" title="GHC">Id</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Types.Id.html#isDeadBinder" class="link">Source</a> <a href="#v:isDeadBinder" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:isExportedId" class="def">isExportedId</a> :: <a href="GHC-Types-Var.html#t:Var" title="GHC.Types.Var">Var</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Types.Var.html#isExportedId" class="link">Source</a> <a href="#v:isExportedId" class="selflink">#</a></p><div class="doc"><p><code>isExportedIdVar</code> means &quot;don't throw this away&quot;</p></div></div><div class="top"><p class="src"><a id="v:isLocalId" class="def">isLocalId</a> :: <a href="GHC-Types-Var.html#t:Var" title="GHC.Types.Var">Var</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Types.Var.html#isLocalId" class="link">Source</a> <a href="#v:isLocalId" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:isGlobalId" class="def">isGlobalId</a> :: <a href="GHC-Types-Var.html#t:Var" title="GHC.Types.Var">Var</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Types.Var.html#isGlobalId" class="link">Source</a> <a href="#v:isGlobalId" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:isRecordSelector" class="def">isRecordSelector</a> :: <a href="GHC.html#t:Id" title="GHC">Id</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Types.Id.html#isRecordSelector" class="link">Source</a> <a href="#v:isRecordSelector" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:isPrimOpId" class="def">isPrimOpId</a> :: <a href="GHC.html#t:Id" title="GHC">Id</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Types.Id.html#isPrimOpId" class="link">Source</a> <a href="#v:isPrimOpId" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:isFCallId" class="def">isFCallId</a> :: <a href="GHC.html#t:Id" title="GHC">Id</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Types.Id.html#isFCallId" class="link">Source</a> <a href="#v:isFCallId" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:isClassOpId_maybe" class="def">isClassOpId_maybe</a> :: <a href="GHC.html#t:Id" title="GHC">Id</a> -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:Class" title="GHC">Class</a> <a href="src/GHC.Types.Id.html#isClassOpId_maybe" class="link">Source</a> <a href="#v:isClassOpId_maybe" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:isDataConWorkId" class="def">isDataConWorkId</a> :: <a href="GHC.html#t:Id" title="GHC">Id</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Types.Id.html#isDataConWorkId" class="link">Source</a> <a href="#v:isDataConWorkId" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:idDataCon" class="def">idDataCon</a> :: <a href="GHC.html#t:Id" title="GHC">Id</a> -&gt; <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> <a href="src/GHC.Types.Id.html#idDataCon" class="link">Source</a> <a href="#v:idDataCon" class="selflink">#</a></p><div class="doc"><p>Get from either the worker or the wrapper <code><a href="GHC.html#t:Id" title="GHC">Id</a></code> to the <code><a href="GHC.html#t:DataCon" title="GHC">DataCon</a></code>. Currently used only in the desugarer.</p><p>INVARIANT: <code>idDataCon (dataConWrapId d) = d</code>: remember, <code><a href="GHC-Core-DataCon.html#v:dataConWrapId" title="GHC.Core.DataCon">dataConWrapId</a></code> can return either the wrapper or the worker</p></div></div><div class="top"><p class="src"><a id="v:isDeadEndId" class="def">isDeadEndId</a> :: <a href="GHC-Types-Var.html#t:Var" title="GHC.Types.Var">Var</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Types.Id.html#isDeadEndId" class="link">Source</a> <a href="#v:isDeadEndId" class="selflink">#</a></p><div class="doc"><p>Returns true if an application to n args diverges or throws an exception
 See Note [Dead ends] in <a href="GHC-Types-Demand.html">GHC.Types.Demand</a>.</p></div></div><div class="top"><p class="src"><a id="v:isDictonaryId" class="def">isDictonaryId</a> :: <a href="GHC.html#t:Id" title="GHC">Id</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.html#isDictonaryId" class="link">Source</a> <a href="#v:isDictonaryId" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:recordSelectorTyCon" class="def">recordSelectorTyCon</a> :: <a href="GHC.html#t:Id" title="GHC">Id</a> -&gt; <a href="GHC-Types-Id-Info.html#t:RecSelParent" title="GHC.Types.Id.Info">RecSelParent</a> <a href="src/GHC.Types.Id.html#recordSelectorTyCon" class="link">Source</a> <a href="#v:recordSelectorTyCon" class="selflink">#</a></p><div class="doc"><p>If the <code><a href="GHC.html#t:Id" title="GHC">Id</a></code> is that for a record selector, extract the <code><a href="GHC-Types-Id-Info.html#v:sel_tycon" title="GHC.Types.Id.Info">sel_tycon</a></code>. Panic otherwise.</p></div></div><a href="#g:27" id="g:27"><h2>Type constructors</h2></a><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:TyCon" class="def">TyCon</a> <a href="src/GHC.Core.TyCon.html#TyCon" class="link">Source</a> <a href="#t:TyCon" class="selflink">#</a></p><div class="doc"><p>TyCons represent type constructors. Type constructors are introduced by
 things such as:</p><p>1) Data declarations: <code>data Foo = ...</code> creates the <code>Foo</code> type constructor of
    kind <code>*</code></p><p>2) Type synonyms: <code>type Foo = ...</code> creates the <code>Foo</code> type constructor</p><p>3) Newtypes: <code>newtype Foo a = MkFoo ...</code> creates the <code>Foo</code> type constructor
    of kind <code>* -&gt; *</code></p><p>4) Class declarations: <code>class Foo where</code> creates the <code>Foo</code> type constructor
    of kind <code>*</code></p><p>This data type also encodes a number of primitive, built in type constructors
 such as those for function and tuple types.</p></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:TyCon">Instances</h4><details id="i:TyCon" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:TyCon:Data:1"></span> <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> <a href="GHC.html#t:TyCon" title="GHC">TyCon</a></span> <a href="src/GHC.Core.TyCon.html#line-2684" class="link">Source</a> <a href="#t:TyCon" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:TyCon:Data:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-TyCon.html">GHC.Core.TyCon</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (d -&gt; b) -&gt; d -&gt; c b) -&gt; (<span class="keyword">forall</span> g. g -&gt; c g) -&gt; <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; c <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> <a href="../base/src/Data.Data.html#gfoldl" class="link">Source</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; c (b -&gt; r) -&gt; c r) -&gt; (<span class="keyword">forall</span> r. r -&gt; c r) -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> -&gt; c <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> <a href="../base/src/Data.Data.html#gunfold" class="link">Source</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> <a href="../base/src/Data.Data.html#toConstr" class="link">Source</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="../base/Data-Data.html#t:DataType" title="Data.Data">DataType</a> <a href="../base/src/Data.Data.html#dataTypeOf" class="link">Source</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (t d)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c <a href="GHC.html#t:TyCon" title="GHC">TyCon</a>) <a href="../base/src/Data.Data.html#dataCast1" class="link">Source</a> <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d e. (<a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d, <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> e) =&gt; c (t d e)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c <a href="GHC.html#t:TyCon" title="GHC">TyCon</a>) <a href="../base/src/Data.Data.html#dataCast2" class="link">Source</a> <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; b -&gt; b) -&gt; <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> <a href="../base/src/Data.Data.html#gmapT" class="link">Source</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -&gt; r' -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQl" class="link">Source</a> <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: <span class="keyword">forall</span> r r'. (r' -&gt; r -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQr" class="link">Source</a> <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; [u] <a href="../base/src/Data.Data.html#gmapQ" class="link">Source</a> <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; u <a href="../base/src/Data.Data.html#gmapQi" class="link">Source</a> <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="GHC-Prelude.html#t:Monad" title="GHC.Prelude">Monad</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; m <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> <a href="../base/src/Data.Data.html#gmapM" class="link">Source</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; m <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> <a href="../base/src/Data.Data.html#gmapMp" class="link">Source</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; m <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> <a href="../base/src/Data.Data.html#gmapMo" class="link">Source</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:TyCon:NamedThing:2"></span> <a href="GHC.html#t:NamedThing" title="GHC">NamedThing</a> <a href="GHC.html#t:TyCon" title="GHC">TyCon</a></span> <a href="src/GHC.Core.TyCon.html#line-2681" class="link">Source</a> <a href="#t:TyCon" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:TyCon:NamedThing:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-TyCon.html">GHC.Core.TyCon</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getOccName">getOccName</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a> <a href="src/GHC.Types.Name.html#getOccName" class="link">Source</a> <a href="#v:getOccName" class="selflink">#</a></p><p class="src"><a href="#v:getName">getName</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="src/GHC.Types.Name.html#getName" class="link">Source</a> <a href="#v:getName" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:TyCon:Uniquable:3"></span> <a href="GHC-Types-Unique.html#t:Uniquable" title="GHC.Types.Unique">Uniquable</a> <a href="GHC.html#t:TyCon" title="GHC">TyCon</a></span> <a href="src/GHC.Core.TyCon.html#line-2571" class="link">Source</a> <a href="#t:TyCon" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:TyCon:Uniquable:3"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-TyCon.html">GHC.Core.TyCon</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getUnique">getUnique</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC-Types-Unique.html#t:Unique" title="GHC.Types.Unique">Unique</a> <a href="src/GHC.Types.Unique.html#getUnique" class="link">Source</a> <a href="#v:getUnique" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:TyCon:Outputable:4"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC.html#t:TyCon" title="GHC">TyCon</a></span> <a href="src/GHC.Core.TyCon.html#line-2574" class="link">Source</a> <a href="#t:TyCon" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:TyCon:Outputable:4"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-TyCon.html">GHC.Core.TyCon</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:TyCon:Eq:5"></span> <a href="GHC-Prelude.html#t:Eq" title="GHC.Prelude">Eq</a> <a href="GHC.html#t:TyCon" title="GHC">TyCon</a></span> <a href="src/GHC.Core.TyCon.html#line-2567" class="link">Source</a> <a href="#t:TyCon" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:TyCon:Eq:5"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-TyCon.html">GHC.Core.TyCon</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><a id="v:tyConTyVars" class="def">tyConTyVars</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; [<a href="GHC.html#t:TyVar" title="GHC">TyVar</a>] <a href="src/GHC.Core.TyCon.html#tyConTyVars" class="link">Source</a> <a href="#v:tyConTyVars" class="selflink">#</a></p><div class="doc"><p>TyVar binders</p></div></div><div class="top"><p class="src"><a id="v:tyConDataCons" class="def">tyConDataCons</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; [<a href="GHC.html#t:DataCon" title="GHC">DataCon</a>] <a href="src/GHC.Core.TyCon.html#tyConDataCons" class="link">Source</a> <a href="#v:tyConDataCons" class="selflink">#</a></p><div class="doc"><p>As <code><a href="GHC-Core-TyCon.html#v:tyConDataCons_maybe" title="GHC.Core.TyCon">tyConDataCons_maybe</a></code>, but returns the empty list of constructors if no
 constructors could be found</p></div></div><div class="top"><p class="src"><a id="v:tyConArity" class="def">tyConArity</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC-Types-Basic.html#t:Arity" title="GHC.Types.Basic">Arity</a> <a href="src/GHC.Core.TyCon.html#tyConArity" class="link">Source</a> <a href="#v:tyConArity" class="selflink">#</a></p><div class="doc"><p>Arity</p></div></div><div class="top"><p class="src"><a id="v:isClassTyCon" class="def">isClassTyCon</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Core.TyCon.html#isClassTyCon" class="link">Source</a> <a href="#v:isClassTyCon" class="selflink">#</a></p><div class="doc"><p>Is this <code><a href="GHC.html#t:TyCon" title="GHC">TyCon</a></code> that for a class instance?</p></div></div><div class="top"><p class="src"><a id="v:isTypeSynonymTyCon" class="def">isTypeSynonymTyCon</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Core.TyCon.html#isTypeSynonymTyCon" class="link">Source</a> <a href="#v:isTypeSynonymTyCon" class="selflink">#</a></p><div class="doc"><p>Is this a <code><a href="GHC.html#t:TyCon" title="GHC">TyCon</a></code> representing a regular H98 type synonym (<code>type</code>)?</p></div></div><div class="top"><p class="src"><a id="v:isTypeFamilyTyCon" class="def">isTypeFamilyTyCon</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Core.TyCon.html#isTypeFamilyTyCon" class="link">Source</a> <a href="#v:isTypeFamilyTyCon" class="selflink">#</a></p><div class="doc"><p>Is this a synonym <code><a href="GHC.html#t:TyCon" title="GHC">TyCon</a></code> that can have may have further instances appear?</p></div></div><div class="top"><p class="src"><a id="v:isNewTyCon" class="def">isNewTyCon</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Core.TyCon.html#isNewTyCon" class="link">Source</a> <a href="#v:isNewTyCon" class="selflink">#</a></p><div class="doc"><p>Is this <code><a href="GHC.html#t:TyCon" title="GHC">TyCon</a></code> that for a <code>newtype</code></p></div></div><div class="top"><p class="src"><a id="v:isPrimTyCon" class="def">isPrimTyCon</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Core.TyCon.html#isPrimTyCon" class="link">Source</a> <a href="#v:isPrimTyCon" class="selflink">#</a></p><div class="doc"><p>Does this <code><a href="GHC.html#t:TyCon" title="GHC">TyCon</a></code> represent something that cannot be defined in Haskell?</p></div></div><div class="top"><p class="src"><a id="v:isFunTyCon" class="def">isFunTyCon</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Core.TyCon.html#isFunTyCon" class="link">Source</a> <a href="#v:isFunTyCon" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:isFamilyTyCon" class="def">isFamilyTyCon</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Core.TyCon.html#isFamilyTyCon" class="link">Source</a> <a href="#v:isFamilyTyCon" class="selflink">#</a></p><div class="doc"><p>Is this a <code><a href="GHC.html#t:TyCon" title="GHC">TyCon</a></code>, synonym or otherwise, that defines a family?</p></div></div><div class="top"><p class="src"><a id="v:isOpenFamilyTyCon" class="def">isOpenFamilyTyCon</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Core.TyCon.html#isOpenFamilyTyCon" class="link">Source</a> <a href="#v:isOpenFamilyTyCon" class="selflink">#</a></p><div class="doc"><p>Is this a <code><a href="GHC.html#t:TyCon" title="GHC">TyCon</a></code>, synonym or otherwise, that defines a family with
 instances?</p></div></div><div class="top"><p class="src"><a id="v:isOpenTypeFamilyTyCon" class="def">isOpenTypeFamilyTyCon</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Core.TyCon.html#isOpenTypeFamilyTyCon" class="link">Source</a> <a href="#v:isOpenTypeFamilyTyCon" class="selflink">#</a></p><div class="doc"><p>Is this an open type family TyCon?</p></div></div><div class="top"><p class="src"><a id="v:tyConClass_maybe" class="def">tyConClass_maybe</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:Class" title="GHC">Class</a> <a href="src/GHC.Core.TyCon.html#tyConClass_maybe" class="link">Source</a> <a href="#v:tyConClass_maybe" class="selflink">#</a></p><div class="doc"><p>If this <code><a href="GHC.html#t:TyCon" title="GHC">TyCon</a></code> is that for a class instance, return the class it is for.
 Otherwise returns <code>Nothing</code></p></div></div><div class="top"><p class="src"><a id="v:synTyConRhs_maybe" class="def">synTyConRhs_maybe</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:Type" title="GHC">Type</a> <a href="src/GHC.Core.TyCon.html#synTyConRhs_maybe" class="link">Source</a> <a href="#v:synTyConRhs_maybe" class="selflink">#</a></p><div class="doc"><p>Extract the information pertaining to the right hand side of a type synonym
 (<code>type</code>) declaration.</p></div></div><div class="top"><p class="src"><a id="v:synTyConDefn_maybe" class="def">synTyConDefn_maybe</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> ([<a href="GHC.html#t:TyVar" title="GHC">TyVar</a>], <a href="GHC.html#t:Type" title="GHC">Type</a>) <a href="src/GHC.Core.TyCon.html#synTyConDefn_maybe" class="link">Source</a> <a href="#v:synTyConDefn_maybe" class="selflink">#</a></p><div class="doc"><p>Extract the <code><a href="GHC.html#t:TyVar" title="GHC">TyVar</a></code>s bound by a vanilla type synonym
 and the corresponding (unsubstituted) right hand side.</p></div></div><div class="top"><p class="src"><a id="v:tyConKind" class="def">tyConKind</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; <a href="GHC.html#t:Kind" title="GHC">Kind</a> <a href="src/GHC.Core.TyCon.html#tyConKind" class="link">Source</a> <a href="#v:tyConKind" class="selflink">#</a></p><div class="doc"><p>Kind of this TyCon</p></div></div><a href="#g:28" id="g:28"><h2>Type variables</h2></a><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:TyVar" class="def">TyVar</a> = <a href="GHC-Types-Var.html#t:Var" title="GHC.Types.Var">Var</a> <a href="src/GHC.Types.Var.html#TyVar" class="link">Source</a> <a href="#t:TyVar" class="selflink">#</a></p><div class="doc"><p>Type or kind Variable</p></div></div><div class="top"><p class="src"><a id="v:alphaTyVars" class="def">alphaTyVars</a> :: [<a href="GHC.html#t:TyVar" title="GHC">TyVar</a>] <a href="src/GHC.Builtin.Types.Prim.html#alphaTyVars" class="link">Source</a> <a href="#v:alphaTyVars" class="selflink">#</a></p></div><a href="#g:29" id="g:29"><h2>Data constructors</h2></a><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:DataCon" class="def">DataCon</a> <a href="src/GHC.Core.DataCon.html#DataCon" class="link">Source</a> <a href="#t:DataCon" class="selflink">#</a></p><div class="doc"><p>A data constructor</p><ul><li><code><a href="GHC-Parser-Annotation.html#v:AnnKeywordId" title="GHC.Parser.Annotation">AnnKeywordId</a></code> : <code><a href="GHC-Parser-Annotation.html#v:AnnOpen" title="GHC.Parser.Annotation">AnnOpen</a></code>,
             <code><a href="GHC-Parser-Annotation.html#v:AnnClose" title="GHC.Parser.Annotation">AnnClose</a></code>,<code><a href="GHC-Parser-Annotation.html#v:AnnComma" title="GHC.Parser.Annotation">AnnComma</a></code></li></ul></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:DataCon">Instances</h4><details id="i:DataCon" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:DataCon:Data:1"></span> <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> <a href="GHC.html#t:DataCon" title="GHC">DataCon</a></span> <a href="src/GHC.Core.DataCon.html#line-856" class="link">Source</a> <a href="#t:DataCon" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:DataCon:Data:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-DataCon.html">GHC.Core.DataCon</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (d -&gt; b) -&gt; d -&gt; c b) -&gt; (<span class="keyword">forall</span> g. g -&gt; c g) -&gt; <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; c <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> <a href="../base/src/Data.Data.html#gfoldl" class="link">Source</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; c (b -&gt; r) -&gt; c r) -&gt; (<span class="keyword">forall</span> r. r -&gt; c r) -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> -&gt; c <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> <a href="../base/src/Data.Data.html#gunfold" class="link">Source</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> <a href="../base/src/Data.Data.html#toConstr" class="link">Source</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; <a href="../base/Data-Data.html#t:DataType" title="Data.Data">DataType</a> <a href="../base/src/Data.Data.html#dataTypeOf" class="link">Source</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (t d)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c <a href="GHC.html#t:DataCon" title="GHC">DataCon</a>) <a href="../base/src/Data.Data.html#dataCast1" class="link">Source</a> <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d e. (<a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d, <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> e) =&gt; c (t d e)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c <a href="GHC.html#t:DataCon" title="GHC">DataCon</a>) <a href="../base/src/Data.Data.html#dataCast2" class="link">Source</a> <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; b -&gt; b) -&gt; <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> <a href="../base/src/Data.Data.html#gmapT" class="link">Source</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -&gt; r' -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQl" class="link">Source</a> <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: <span class="keyword">forall</span> r r'. (r' -&gt; r -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQr" class="link">Source</a> <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; [u] <a href="../base/src/Data.Data.html#gmapQ" class="link">Source</a> <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; u <a href="../base/src/Data.Data.html#gmapQi" class="link">Source</a> <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="GHC-Prelude.html#t:Monad" title="GHC.Prelude">Monad</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; m <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> <a href="../base/src/Data.Data.html#gmapM" class="link">Source</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; m <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> <a href="../base/src/Data.Data.html#gmapMp" class="link">Source</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; m <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> <a href="../base/src/Data.Data.html#gmapMo" class="link">Source</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:DataCon:NamedThing:2"></span> <a href="GHC.html#t:NamedThing" title="GHC">NamedThing</a> <a href="GHC.html#t:DataCon" title="GHC">DataCon</a></span> <a href="src/GHC.Core.DataCon.html#line-846" class="link">Source</a> <a href="#t:DataCon" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:DataCon:NamedThing:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-DataCon.html">GHC.Core.DataCon</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getOccName">getOccName</a> :: <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a> <a href="src/GHC.Types.Name.html#getOccName" class="link">Source</a> <a href="#v:getOccName" class="selflink">#</a></p><p class="src"><a href="#v:getName">getName</a> :: <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="src/GHC.Types.Name.html#getName" class="link">Source</a> <a href="#v:getName" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:DataCon:Uniquable:3"></span> <a href="GHC-Types-Unique.html#t:Uniquable" title="GHC.Types.Unique">Uniquable</a> <a href="GHC.html#t:DataCon" title="GHC">DataCon</a></span> <a href="src/GHC.Core.DataCon.html#line-843" class="link">Source</a> <a href="#t:DataCon" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:DataCon:Uniquable:3"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-DataCon.html">GHC.Core.DataCon</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getUnique">getUnique</a> :: <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; <a href="GHC-Types-Unique.html#t:Unique" title="GHC.Types.Unique">Unique</a> <a href="src/GHC.Types.Unique.html#getUnique" class="link">Source</a> <a href="#v:getUnique" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:DataCon:Outputable:4"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC.html#t:DataCon" title="GHC">DataCon</a></span> <a href="src/GHC.Core.DataCon.html#line-849" class="link">Source</a> <a href="#t:DataCon" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:DataCon:Outputable:4"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-DataCon.html">GHC.Core.DataCon</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:DataCon:OutputableBndr:5"></span> <a href="GHC-Utils-Outputable.html#t:OutputableBndr" title="GHC.Utils.Outputable">OutputableBndr</a> <a href="GHC.html#t:DataCon" title="GHC">DataCon</a></span> <a href="src/GHC.Core.DataCon.html#line-852" class="link">Source</a> <a href="#t:DataCon" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:DataCon:OutputableBndr:5"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-DataCon.html">GHC.Core.DataCon</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:pprBndr">pprBndr</a> :: <a href="GHC-Utils-Outputable.html#t:BindingSite" title="GHC.Utils.Outputable">BindingSite</a> -&gt; <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprBndr" class="link">Source</a> <a href="#v:pprBndr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrefixOcc">pprPrefixOcc</a> :: <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrefixOcc" class="link">Source</a> <a href="#v:pprPrefixOcc" class="selflink">#</a></p><p class="src"><a href="#v:pprInfixOcc">pprInfixOcc</a> :: <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprInfixOcc" class="link">Source</a> <a href="#v:pprInfixOcc" class="selflink">#</a></p><p class="src"><a href="#v:bndrIsJoin_maybe">bndrIsJoin_maybe</a> :: <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> <a href="src/GHC.Utils.Outputable.html#bndrIsJoin_maybe" class="link">Source</a> <a href="#v:bndrIsJoin_maybe" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:DataCon:Eq:6"></span> <a href="GHC-Prelude.html#t:Eq" title="GHC.Prelude">Eq</a> <a href="GHC.html#t:DataCon" title="GHC">DataCon</a></span> <a href="src/GHC.Core.DataCon.html#line-839" class="link">Source</a> <a href="#t:DataCon" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:DataCon:Eq:6"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-DataCon.html">GHC.Core.DataCon</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><a id="v:dataConType" class="def">dataConType</a> :: <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; <a href="GHC.html#t:Type" title="GHC">Type</a> <a href="src/GHC.html#dataConType" class="link">Source</a> <a href="#v:dataConType" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:dataConTyCon" class="def">dataConTyCon</a> :: <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> <a href="src/GHC.Core.DataCon.html#dataConTyCon" class="link">Source</a> <a href="#v:dataConTyCon" class="selflink">#</a></p><div class="doc"><p>The type constructor that we are building via this data constructor</p></div></div><div class="top"><p class="src"><a id="v:dataConFieldLabels" class="def">dataConFieldLabels</a> :: <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; [<a href="GHC-Types-FieldLabel.html#t:FieldLabel" title="GHC.Types.FieldLabel">FieldLabel</a>] <a href="src/GHC.Core.DataCon.html#dataConFieldLabels" class="link">Source</a> <a href="#v:dataConFieldLabels" class="selflink">#</a></p><div class="doc"><p>The labels for the fields of this particular <code><a href="GHC.html#t:DataCon" title="GHC">DataCon</a></code></p></div></div><div class="top"><p class="src"><a id="v:dataConIsInfix" class="def">dataConIsInfix</a> :: <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Core.DataCon.html#dataConIsInfix" class="link">Source</a> <a href="#v:dataConIsInfix" class="selflink">#</a></p><div class="doc"><p>Should the <code><a href="GHC.html#t:DataCon" title="GHC">DataCon</a></code> be presented infix?</p></div></div><div class="top"><p class="src"><a id="v:isVanillaDataCon" class="def">isVanillaDataCon</a> :: <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Core.DataCon.html#isVanillaDataCon" class="link">Source</a> <a href="#v:isVanillaDataCon" class="selflink">#</a></p><div class="doc"><p>Vanilla <code><a href="GHC.html#t:DataCon" title="GHC">DataCon</a></code>s are those that are nice boring Haskell 98 constructors</p></div></div><div class="top"><p class="src"><a id="v:dataConWrapperType" class="def">dataConWrapperType</a> :: <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; <a href="GHC.html#t:Type" title="GHC">Type</a> <a href="src/GHC.Core.DataCon.html#dataConWrapperType" class="link">Source</a> <a href="#v:dataConWrapperType" class="selflink">#</a></p><div class="doc"><p>The user-declared type of the data constructor
 in the nice-to-read form:</p><pre>T :: forall a b. a -&gt; b -&gt; T [a]</pre><p>rather than:</p><pre>T :: forall a c. forall b. (c~[a]) =&gt; a -&gt; b -&gt; T c</pre><p>The type variables are quantified in the order that the user wrote them.
 See <code>Note [DataCon user type variable binders]</code>.</p><p>NB: If the constructor is part of a data instance, the result type
 mentions the family tycon, not the internal one.</p></div></div><div class="top"><p class="src"><a id="v:dataConSrcBangs" class="def">dataConSrcBangs</a> :: <a href="GHC.html#t:DataCon" title="GHC">DataCon</a> -&gt; [<a href="GHC-Core-DataCon.html#t:HsSrcBang" title="GHC.Core.DataCon">HsSrcBang</a>] <a href="src/GHC.Core.DataCon.html#dataConSrcBangs" class="link">Source</a> <a href="#v:dataConSrcBangs" class="selflink">#</a></p><div class="doc"><p>Strictness/unpack annotations, from user; or, for imported
 DataCons, from the interface file
 The list is in one-to-one correspondence with the arity of the <code><a href="GHC.html#t:DataCon" title="GHC">DataCon</a></code></p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:StrictnessMark" class="def">StrictnessMark</a> <a href="src/GHC.Core.DataCon.html#StrictnessMark" class="link">Source</a> <a href="#t:StrictnessMark" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:MarkedStrict" class="def">MarkedStrict</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:NotMarkedStrict" class="def">NotMarkedStrict</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:StrictnessMark">Instances</h4><details id="i:StrictnessMark" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:StrictnessMark:Outputable:1"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC.html#t:StrictnessMark" title="GHC">StrictnessMark</a></span> <a href="src/GHC.Core.DataCon.html#line-881" class="link">Source</a> <a href="#t:StrictnessMark" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:StrictnessMark:Outputable:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-DataCon.html">GHC.Core.DataCon</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC.html#t:StrictnessMark" title="GHC">StrictnessMark</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC.html#t:StrictnessMark" title="GHC">StrictnessMark</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><a id="v:isMarkedStrict" class="def">isMarkedStrict</a> :: <a href="GHC.html#t:StrictnessMark" title="GHC">StrictnessMark</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Core.DataCon.html#isMarkedStrict" class="link">Source</a> <a href="#v:isMarkedStrict" class="selflink">#</a></p></div><a href="#g:30" id="g:30"><h2>Classes</h2></a><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Class" class="def">Class</a> <a href="src/GHC.Core.Class.html#Class" class="link">Source</a> <a href="#t:Class" class="selflink">#</a></p><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:Class">Instances</h4><details id="i:Class" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Class:Data:1"></span> <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> <a href="GHC.html#t:Class" title="GHC">Class</a></span> <a href="src/GHC.Core.Class.html#line-367" class="link">Source</a> <a href="#t:Class" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:Class:Data:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-Class.html">GHC.Core.Class</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (d -&gt; b) -&gt; d -&gt; c b) -&gt; (<span class="keyword">forall</span> g. g -&gt; c g) -&gt; <a href="GHC.html#t:Class" title="GHC">Class</a> -&gt; c <a href="GHC.html#t:Class" title="GHC">Class</a> <a href="../base/src/Data.Data.html#gfoldl" class="link">Source</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; c (b -&gt; r) -&gt; c r) -&gt; (<span class="keyword">forall</span> r. r -&gt; c r) -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> -&gt; c <a href="GHC.html#t:Class" title="GHC">Class</a> <a href="../base/src/Data.Data.html#gunfold" class="link">Source</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="GHC.html#t:Class" title="GHC">Class</a> -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> <a href="../base/src/Data.Data.html#toConstr" class="link">Source</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="GHC.html#t:Class" title="GHC">Class</a> -&gt; <a href="../base/Data-Data.html#t:DataType" title="Data.Data">DataType</a> <a href="../base/src/Data.Data.html#dataTypeOf" class="link">Source</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (t d)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c <a href="GHC.html#t:Class" title="GHC">Class</a>) <a href="../base/src/Data.Data.html#dataCast1" class="link">Source</a> <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d e. (<a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d, <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> e) =&gt; c (t d e)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c <a href="GHC.html#t:Class" title="GHC">Class</a>) <a href="../base/src/Data.Data.html#dataCast2" class="link">Source</a> <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; b -&gt; b) -&gt; <a href="GHC.html#t:Class" title="GHC">Class</a> -&gt; <a href="GHC.html#t:Class" title="GHC">Class</a> <a href="../base/src/Data.Data.html#gmapT" class="link">Source</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -&gt; r' -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC.html#t:Class" title="GHC">Class</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQl" class="link">Source</a> <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: <span class="keyword">forall</span> r r'. (r' -&gt; r -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC.html#t:Class" title="GHC">Class</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQr" class="link">Source</a> <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC.html#t:Class" title="GHC">Class</a> -&gt; [u] <a href="../base/src/Data.Data.html#gmapQ" class="link">Source</a> <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC.html#t:Class" title="GHC">Class</a> -&gt; u <a href="../base/src/Data.Data.html#gmapQi" class="link">Source</a> <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="GHC-Prelude.html#t:Monad" title="GHC.Prelude">Monad</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:Class" title="GHC">Class</a> -&gt; m <a href="GHC.html#t:Class" title="GHC">Class</a> <a href="../base/src/Data.Data.html#gmapM" class="link">Source</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:Class" title="GHC">Class</a> -&gt; m <a href="GHC.html#t:Class" title="GHC">Class</a> <a href="../base/src/Data.Data.html#gmapMp" class="link">Source</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:Class" title="GHC">Class</a> -&gt; m <a href="GHC.html#t:Class" title="GHC">Class</a> <a href="../base/src/Data.Data.html#gmapMo" class="link">Source</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Class:NamedThing:2"></span> <a href="GHC.html#t:NamedThing" title="GHC">NamedThing</a> <a href="GHC.html#t:Class" title="GHC">Class</a></span> <a href="src/GHC.Core.Class.html#line-348" class="link">Source</a> <a href="#t:Class" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:Class:NamedThing:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-Class.html">GHC.Core.Class</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getOccName">getOccName</a> :: <a href="GHC.html#t:Class" title="GHC">Class</a> -&gt; <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a> <a href="src/GHC.Types.Name.html#getOccName" class="link">Source</a> <a href="#v:getOccName" class="selflink">#</a></p><p class="src"><a href="#v:getName">getName</a> :: <a href="GHC.html#t:Class" title="GHC">Class</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="src/GHC.Types.Name.html#getName" class="link">Source</a> <a href="#v:getName" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Class:Uniquable:3"></span> <a href="GHC-Types-Unique.html#t:Uniquable" title="GHC.Types.Unique">Uniquable</a> <a href="GHC.html#t:Class" title="GHC">Class</a></span> <a href="src/GHC.Core.Class.html#line-345" class="link">Source</a> <a href="#t:Class" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:Class:Uniquable:3"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-Class.html">GHC.Core.Class</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getUnique">getUnique</a> :: <a href="GHC.html#t:Class" title="GHC">Class</a> -&gt; <a href="GHC-Types-Unique.html#t:Unique" title="GHC.Types.Unique">Unique</a> <a href="src/GHC.Types.Unique.html#getUnique" class="link">Source</a> <a href="#v:getUnique" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Class:Outputable:4"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC.html#t:Class" title="GHC">Class</a></span> <a href="src/GHC.Core.Class.html#line-351" class="link">Source</a> <a href="#t:Class" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:Class:Outputable:4"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-Class.html">GHC.Core.Class</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC.html#t:Class" title="GHC">Class</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC.html#t:Class" title="GHC">Class</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Class:Eq:5"></span> <a href="GHC-Prelude.html#t:Eq" title="GHC.Prelude">Eq</a> <a href="GHC.html#t:Class" title="GHC">Class</a></span> <a href="src/GHC.Core.Class.html#line-341" class="link">Source</a> <a href="#t:Class" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:Class:Eq:5"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-Class.html">GHC.Core.Class</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="GHC.html#t:Class" title="GHC">Class</a> -&gt; <a href="GHC.html#t:Class" title="GHC">Class</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="GHC.html#t:Class" title="GHC">Class</a> -&gt; <a href="GHC.html#t:Class" title="GHC">Class</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><a id="v:classMethods" class="def">classMethods</a> :: <a href="GHC.html#t:Class" title="GHC">Class</a> -&gt; [<a href="GHC.html#t:Id" title="GHC">Id</a>] <a href="src/GHC.Core.Class.html#classMethods" class="link">Source</a> <a href="#v:classMethods" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:classSCTheta" class="def">classSCTheta</a> :: <a href="GHC.html#t:Class" title="GHC">Class</a> -&gt; [<a href="GHC.html#t:PredType" title="GHC">PredType</a>] <a href="src/GHC.Core.Class.html#classSCTheta" class="link">Source</a> <a href="#v:classSCTheta" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:classTvsFds" class="def">classTvsFds</a> :: <a href="GHC.html#t:Class" title="GHC">Class</a> -&gt; ([<a href="GHC.html#t:TyVar" title="GHC">TyVar</a>], [<a href="GHC-Core-Class.html#t:FunDep" title="GHC.Core.Class">FunDep</a> <a href="GHC.html#t:TyVar" title="GHC">TyVar</a>]) <a href="src/GHC.Core.Class.html#classTvsFds" class="link">Source</a> <a href="#v:classTvsFds" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:classATs" class="def">classATs</a> :: <a href="GHC.html#t:Class" title="GHC">Class</a> -&gt; [<a href="GHC.html#t:TyCon" title="GHC">TyCon</a>] <a href="src/GHC.Core.Class.html#classATs" class="link">Source</a> <a href="#v:classATs" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:pprFundeps" class="def">pprFundeps</a> :: <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> a =&gt; [<a href="GHC-Core-Class.html#t:FunDep" title="GHC.Core.Class">FunDep</a> a] -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Core.Class.html#pprFundeps" class="link">Source</a> <a href="#v:pprFundeps" class="selflink">#</a></p></div><a href="#g:31" id="g:31"><h2>Instances</h2></a><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ClsInst" class="def">ClsInst</a> <a href="src/GHC.Core.InstEnv.html#ClsInst" class="link">Source</a> <a href="#t:ClsInst" class="selflink">#</a></p><div class="doc"><p>A type-class instance. Note that there is some tricky laziness at work
 here. See Note [ClsInst laziness and the rough-match fields] for more
 details.</p></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:ClsInst">Instances</h4><details id="i:ClsInst" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:ClsInst:Data:1"></span> <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a></span> <a href="src/GHC.Core.InstEnv.html#line-99" class="link">Source</a> <a href="#t:ClsInst" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:ClsInst:Data:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-InstEnv.html">GHC.Core.InstEnv</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (d -&gt; b) -&gt; d -&gt; c b) -&gt; (<span class="keyword">forall</span> g. g -&gt; c g) -&gt; <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a> -&gt; c <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a> <a href="../base/src/Data.Data.html#gfoldl" class="link">Source</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; c (b -&gt; r) -&gt; c r) -&gt; (<span class="keyword">forall</span> r. r -&gt; c r) -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> -&gt; c <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a> <a href="../base/src/Data.Data.html#gunfold" class="link">Source</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a> -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> <a href="../base/src/Data.Data.html#toConstr" class="link">Source</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a> -&gt; <a href="../base/Data-Data.html#t:DataType" title="Data.Data">DataType</a> <a href="../base/src/Data.Data.html#dataTypeOf" class="link">Source</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (t d)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a>) <a href="../base/src/Data.Data.html#dataCast1" class="link">Source</a> <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d e. (<a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d, <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> e) =&gt; c (t d e)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a>) <a href="../base/src/Data.Data.html#dataCast2" class="link">Source</a> <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; b -&gt; b) -&gt; <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a> -&gt; <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a> <a href="../base/src/Data.Data.html#gmapT" class="link">Source</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -&gt; r' -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQl" class="link">Source</a> <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: <span class="keyword">forall</span> r r'. (r' -&gt; r -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQr" class="link">Source</a> <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a> -&gt; [u] <a href="../base/src/Data.Data.html#gmapQ" class="link">Source</a> <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a> -&gt; u <a href="../base/src/Data.Data.html#gmapQi" class="link">Source</a> <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="GHC-Prelude.html#t:Monad" title="GHC.Prelude">Monad</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a> -&gt; m <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a> <a href="../base/src/Data.Data.html#gmapM" class="link">Source</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a> -&gt; m <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a> <a href="../base/src/Data.Data.html#gmapMp" class="link">Source</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a> -&gt; m <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a> <a href="../base/src/Data.Data.html#gmapMo" class="link">Source</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:ClsInst:NamedThing:2"></span> <a href="GHC.html#t:NamedThing" title="GHC">NamedThing</a> <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a></span> <a href="src/GHC.Core.InstEnv.html#line-211" class="link">Source</a> <a href="#t:ClsInst" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:ClsInst:NamedThing:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-InstEnv.html">GHC.Core.InstEnv</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getOccName">getOccName</a> :: <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a> -&gt; <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a> <a href="src/GHC.Types.Name.html#getOccName" class="link">Source</a> <a href="#v:getOccName" class="selflink">#</a></p><p class="src"><a href="#v:getName">getName</a> :: <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="src/GHC.Types.Name.html#getName" class="link">Source</a> <a href="#v:getName" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:ClsInst:Outputable:3"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a></span> <a href="src/GHC.Core.InstEnv.html#line-214" class="link">Source</a> <a href="#t:ClsInst" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:ClsInst:Outputable:3"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-InstEnv.html">GHC.Core.InstEnv</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><a id="v:instanceDFunId" class="def">instanceDFunId</a> :: <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a> -&gt; <a href="GHC-Types-Var.html#t:DFunId" title="GHC.Types.Var">DFunId</a> <a href="src/GHC.Core.InstEnv.html#instanceDFunId" class="link">Source</a> <a href="#v:instanceDFunId" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:pprInstance" class="def">pprInstance</a> :: <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Core.InstEnv.html#pprInstance" class="link">Source</a> <a href="#v:pprInstance" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:pprInstanceHdr" class="def">pprInstanceHdr</a> :: <a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Core.InstEnv.html#pprInstanceHdr" class="link">Source</a> <a href="#v:pprInstanceHdr" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:pprFamInst" class="def">pprFamInst</a> :: <a href="GHC.html#t:FamInst" title="GHC">FamInst</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Core.Ppr.TyThing.html#pprFamInst" class="link">Source</a> <a href="#v:pprFamInst" class="selflink">#</a></p><div class="doc"><p>Pretty-prints a <code><a href="GHC.html#t:FamInst" title="GHC">FamInst</a></code> (type/data family instance) with its defining location.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:FamInst" class="def">FamInst</a> <a href="src/GHC.Core.FamInstEnv.html#FamInst" class="link">Source</a> <a href="#t:FamInst" class="selflink">#</a></p><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:FamInst">Instances</h4><details id="i:FamInst" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:FamInst:NamedThing:1"></span> <a href="GHC.html#t:NamedThing" title="GHC">NamedThing</a> <a href="GHC.html#t:FamInst" title="GHC">FamInst</a></span> <a href="src/GHC.Core.FamInstEnv.html#line-216" class="link">Source</a> <a href="#t:FamInst" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:FamInst:NamedThing:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-FamInstEnv.html">GHC.Core.FamInstEnv</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getOccName">getOccName</a> :: <a href="GHC.html#t:FamInst" title="GHC">FamInst</a> -&gt; <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a> <a href="src/GHC.Types.Name.html#getOccName" class="link">Source</a> <a href="#v:getOccName" class="selflink">#</a></p><p class="src"><a href="#v:getName">getName</a> :: <a href="GHC.html#t:FamInst" title="GHC">FamInst</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="src/GHC.Types.Name.html#getName" class="link">Source</a> <a href="#v:getName" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:FamInst:Outputable:2"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC.html#t:FamInst" title="GHC">FamInst</a></span> <a href="src/GHC.Core.FamInstEnv.html#line-219" class="link">Source</a> <a href="#t:FamInst" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:FamInst:Outputable:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-FamInstEnv.html">GHC.Core.FamInstEnv</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC.html#t:FamInst" title="GHC">FamInst</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC.html#t:FamInst" title="GHC">FamInst</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><a href="#g:32" id="g:32"><h2>Types and Kinds</h2></a><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Type" class="def">Type</a> <a href="src/GHC.Core.TyCo.Rep.html#Type" class="link">Source</a> <a href="#t:Type" class="selflink">#</a></p><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:Type">Instances</h4><details id="i:Type" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Type:Data:1"></span> <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> <a href="GHC.html#t:Type" title="GHC">Type</a></span> <a href="src/GHC.Core.TyCo.Rep.html#line-244" class="link">Source</a> <a href="#t:Type" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:Type:Data:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-TyCo-Rep.html">GHC.Core.TyCo.Rep</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (d -&gt; b) -&gt; d -&gt; c b) -&gt; (<span class="keyword">forall</span> g. g -&gt; c g) -&gt; <a href="GHC.html#t:Type" title="GHC">Type</a> -&gt; c <a href="GHC.html#t:Type" title="GHC">Type</a> <a href="../base/src/Data.Data.html#gfoldl" class="link">Source</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; c (b -&gt; r) -&gt; c r) -&gt; (<span class="keyword">forall</span> r. r -&gt; c r) -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> -&gt; c <a href="GHC.html#t:Type" title="GHC">Type</a> <a href="../base/src/Data.Data.html#gunfold" class="link">Source</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="GHC.html#t:Type" title="GHC">Type</a> -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> <a href="../base/src/Data.Data.html#toConstr" class="link">Source</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="GHC.html#t:Type" title="GHC">Type</a> -&gt; <a href="../base/Data-Data.html#t:DataType" title="Data.Data">DataType</a> <a href="../base/src/Data.Data.html#dataTypeOf" class="link">Source</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (t d)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c <a href="GHC.html#t:Type" title="GHC">Type</a>) <a href="../base/src/Data.Data.html#dataCast1" class="link">Source</a> <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d e. (<a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d, <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> e) =&gt; c (t d e)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c <a href="GHC.html#t:Type" title="GHC">Type</a>) <a href="../base/src/Data.Data.html#dataCast2" class="link">Source</a> <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; b -&gt; b) -&gt; <a href="GHC.html#t:Type" title="GHC">Type</a> -&gt; <a href="GHC.html#t:Type" title="GHC">Type</a> <a href="../base/src/Data.Data.html#gmapT" class="link">Source</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -&gt; r' -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC.html#t:Type" title="GHC">Type</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQl" class="link">Source</a> <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: <span class="keyword">forall</span> r r'. (r' -&gt; r -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC.html#t:Type" title="GHC">Type</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQr" class="link">Source</a> <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC.html#t:Type" title="GHC">Type</a> -&gt; [u] <a href="../base/src/Data.Data.html#gmapQ" class="link">Source</a> <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC.html#t:Type" title="GHC">Type</a> -&gt; u <a href="../base/src/Data.Data.html#gmapQi" class="link">Source</a> <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="GHC-Prelude.html#t:Monad" title="GHC.Prelude">Monad</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:Type" title="GHC">Type</a> -&gt; m <a href="GHC.html#t:Type" title="GHC">Type</a> <a href="../base/src/Data.Data.html#gmapM" class="link">Source</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:Type" title="GHC">Type</a> -&gt; m <a href="GHC.html#t:Type" title="GHC">Type</a> <a href="../base/src/Data.Data.html#gmapMp" class="link">Source</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:Type" title="GHC">Type</a> -&gt; m <a href="GHC.html#t:Type" title="GHC">Type</a> <a href="../base/src/Data.Data.html#gmapMo" class="link">Source</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Type:Outputable:2"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC.html#t:Type" title="GHC">Type</a></span> <a href="src/GHC.Core.TyCo.Rep.html#line-246" class="link">Source</a> <a href="#t:Type" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:Type:Outputable:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-TyCo-Rep.html">GHC.Core.TyCo.Rep</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC.html#t:Type" title="GHC">Type</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC.html#t:Type" title="GHC">Type</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><a id="v:splitForAllTys" class="def">splitForAllTys</a> :: <a href="GHC.html#t:Type" title="GHC">Type</a> -&gt; ([<a href="GHC-Types-Var.html#t:TyCoVar" title="GHC.Types.Var">TyCoVar</a>], <a href="GHC.html#t:Type" title="GHC">Type</a>) <a href="src/GHC.Core.Type.html#splitForAllTys" class="link">Source</a> <a href="#v:splitForAllTys" class="selflink">#</a></p><div class="doc"><p>Take a ForAllTy apart, returning the list of tycovars and the result type.
 This always succeeds, even if it returns only an empty list. Note that the
 result type returned may have free variables that were bound by a forall.</p></div></div><div class="top"><p class="src"><a id="v:funResultTy" class="def">funResultTy</a> :: <a href="GHC.html#t:Type" title="GHC">Type</a> -&gt; <a href="GHC.html#t:Type" title="GHC">Type</a> <a href="src/GHC.Core.Type.html#funResultTy" class="link">Source</a> <a href="#v:funResultTy" class="selflink">#</a></p><div class="doc"><p>Extract the function result type and panic if that is not possible</p></div></div><div class="top"><p class="src"><a id="v:pprParendType" class="def">pprParendType</a> :: <a href="GHC.html#t:Type" title="GHC">Type</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Core.TyCo.Ppr.html#pprParendType" class="link">Source</a> <a href="#v:pprParendType" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:pprTypeApp" class="def">pprTypeApp</a> :: <a href="GHC.html#t:TyCon" title="GHC">TyCon</a> -&gt; [<a href="GHC.html#t:Type" title="GHC">Type</a>] -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Core.TyCo.Ppr.html#pprTypeApp" class="link">Source</a> <a href="#v:pprTypeApp" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:Kind" class="def">Kind</a> = <a href="GHC.html#t:Type" title="GHC">Type</a> <a href="src/GHC.Core.TyCo.Rep.html#Kind" class="link">Source</a> <a href="#t:Kind" class="selflink">#</a></p><div class="doc"><p>The key type representing kinds in the compiler.</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:PredType" class="def">PredType</a> = <a href="GHC.html#t:Type" title="GHC">Type</a> <a href="src/GHC.Core.TyCo.Rep.html#PredType" class="link">Source</a> <a href="#t:PredType" class="selflink">#</a></p><div class="doc"><p>A type of the form <code>p</code> of constraint kind represents a value whose type is
 the Haskell predicate <code>p</code>, where a predicate is what occurs before
 the <code>=&gt;</code> in a Haskell type.</p><p>We use <code><a href="GHC.html#t:PredType" title="GHC">PredType</a></code> as documentation to mark those types that we guarantee to
 have this kind.</p><p>It can be expanded into its representation, but:</p><ul><li>The type checker must treat it as opaque</li><li>The rest of the compiler treats it as transparent</li></ul><p>Consider these examples:</p><pre>f :: (Eq a) =&gt; a -&gt; Int
g :: (?x :: Int -&gt; Int) =&gt; a -&gt; Int
h :: (r\l) =&gt; {r} =&gt; {l::Int | r}</pre><p>Here the <code>Eq a</code> and <code>?x :: Int -&gt; Int</code> and <code>rl</code> are all called &quot;predicates&quot;</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:ThetaType" class="def">ThetaType</a> = [<a href="GHC.html#t:PredType" title="GHC">PredType</a>] <a href="src/GHC.Core.TyCo.Rep.html#ThetaType" class="link">Source</a> <a href="#t:ThetaType" class="selflink">#</a></p><div class="doc"><p>A collection of <code><a href="GHC.html#t:PredType" title="GHC">PredType</a></code>s</p></div></div><div class="top"><p class="src"><a id="v:pprForAll" class="def">pprForAll</a> :: [<a href="GHC-Types-Var.html#t:TyCoVarBinder" title="GHC.Types.Var">TyCoVarBinder</a>] -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Core.TyCo.Ppr.html#pprForAll" class="link">Source</a> <a href="#v:pprForAll" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:pprThetaArrowTy" class="def">pprThetaArrowTy</a> :: <a href="GHC.html#t:ThetaType" title="GHC">ThetaType</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Core.TyCo.Ppr.html#pprThetaArrowTy" class="link">Source</a> <a href="#v:pprThetaArrowTy" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:parseInstanceHead" class="def">parseInstanceHead</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; m <a href="GHC.html#t:Type" title="GHC">Type</a> <a href="src/GHC.Runtime.Eval.html#parseInstanceHead" class="link">Source</a> <a href="#v:parseInstanceHead" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getInstancesForType" class="def">getInstancesForType</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:Type" title="GHC">Type</a> -&gt; m [<a href="GHC.html#t:ClsInst" title="GHC">ClsInst</a>] <a href="src/GHC.Runtime.Eval.html#getInstancesForType" class="link">Source</a> <a href="#v:getInstancesForType" class="selflink">#</a></p></div><a href="#g:33" id="g:33"><h2>Entities</h2></a><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:TyThing" class="def">TyThing</a> <a href="src/GHC.Core.TyCo.Rep.html#TyThing" class="link">Source</a> <a href="#t:TyThing" class="selflink">#</a></p><div class="doc"><p>A global typecheckable-thing, essentially anything that has a name.
 Not to be confused with a <code>TcTyThing</code>, which is also a typecheckable
 thing but in the *local* context.  See <a href="GHC-Tc-Utils-Env.html">GHC.Tc.Utils.Env</a> for how to retrieve
 a <code><a href="GHC.html#t:TyThing" title="GHC">TyThing</a></code> given a <code><a href="GHC.html#t:Name" title="GHC">Name</a></code>.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:AnId" class="def">AnId</a> <a href="GHC.html#t:Id" title="GHC">Id</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AConLike" class="def">AConLike</a> <a href="GHC-Core-ConLike.html#t:ConLike" title="GHC.Core.ConLike">ConLike</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:ATyCon" class="def">ATyCon</a> <a href="GHC.html#t:TyCon" title="GHC">TyCon</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:ACoAxiom" class="def">ACoAxiom</a> (<a href="GHC-Core-Coercion-Axiom.html#t:CoAxiom" title="GHC.Core.Coercion.Axiom">CoAxiom</a> <a href="GHC-Core-Coercion-Axiom.html#t:Branched" title="GHC.Core.Coercion.Axiom">Branched</a>)</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:TyThing">Instances</h4><details id="i:TyThing" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:TyThing:NamedThing:1"></span> <a href="GHC.html#t:NamedThing" title="GHC">NamedThing</a> <a href="GHC.html#t:TyThing" title="GHC">TyThing</a></span> <a href="src/GHC.Core.TyCo.Rep.html#line-143" class="link">Source</a> <a href="#t:TyThing" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:TyThing:NamedThing:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-TyCo-Rep.html">GHC.Core.TyCo.Rep</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getOccName">getOccName</a> :: <a href="GHC.html#t:TyThing" title="GHC">TyThing</a> -&gt; <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a> <a href="src/GHC.Types.Name.html#getOccName" class="link">Source</a> <a href="#v:getOccName" class="selflink">#</a></p><p class="src"><a href="#v:getName">getName</a> :: <a href="GHC.html#t:TyThing" title="GHC">TyThing</a> -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="src/GHC.Types.Name.html#getName" class="link">Source</a> <a href="#v:getName" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:TyThing:Outputable:2"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC.html#t:TyThing" title="GHC">TyThing</a></span> <a href="src/GHC.Core.TyCo.Rep.html#line-140" class="link">Source</a> <a href="#t:TyThing" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:TyThing:Outputable:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Core-TyCo-Rep.html">GHC.Core.TyCo.Rep</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC.html#t:TyThing" title="GHC">TyThing</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC.html#t:TyThing" title="GHC">TyThing</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><a href="#g:34" id="g:34"><h2>Syntax</h2></a><div class="top"><p class="src">module <a href="GHC-Hs.html">GHC.Hs</a></p></div><a href="#g:35" id="g:35"><h2>Fixities</h2></a><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:FixityDirection" class="def">FixityDirection</a> <a href="src/GHC.Types.Basic.html#FixityDirection" class="link">Source</a> <a href="#t:FixityDirection" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:InfixL" class="def">InfixL</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:InfixR" class="def">InfixR</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:InfixN" class="def">InfixN</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:FixityDirection">Instances</h4><details id="i:FixityDirection" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:FixityDirection:Data:1"></span> <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> <a href="GHC.html#t:FixityDirection" title="GHC">FixityDirection</a></span> <a href="src/GHC.Types.Basic.html#line-503" class="link">Source</a> <a href="#t:FixityDirection" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:FixityDirection:Data:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-Basic.html">GHC.Types.Basic</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (d -&gt; b) -&gt; d -&gt; c b) -&gt; (<span class="keyword">forall</span> g. g -&gt; c g) -&gt; <a href="GHC.html#t:FixityDirection" title="GHC">FixityDirection</a> -&gt; c <a href="GHC.html#t:FixityDirection" title="GHC">FixityDirection</a> <a href="../base/src/Data.Data.html#gfoldl" class="link">Source</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; c (b -&gt; r) -&gt; c r) -&gt; (<span class="keyword">forall</span> r. r -&gt; c r) -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> -&gt; c <a href="GHC.html#t:FixityDirection" title="GHC">FixityDirection</a> <a href="../base/src/Data.Data.html#gunfold" class="link">Source</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="GHC.html#t:FixityDirection" title="GHC">FixityDirection</a> -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> <a href="../base/src/Data.Data.html#toConstr" class="link">Source</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="GHC.html#t:FixityDirection" title="GHC">FixityDirection</a> -&gt; <a href="../base/Data-Data.html#t:DataType" title="Data.Data">DataType</a> <a href="../base/src/Data.Data.html#dataTypeOf" class="link">Source</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (t d)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c <a href="GHC.html#t:FixityDirection" title="GHC">FixityDirection</a>) <a href="../base/src/Data.Data.html#dataCast1" class="link">Source</a> <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d e. (<a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d, <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> e) =&gt; c (t d e)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c <a href="GHC.html#t:FixityDirection" title="GHC">FixityDirection</a>) <a href="../base/src/Data.Data.html#dataCast2" class="link">Source</a> <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; b -&gt; b) -&gt; <a href="GHC.html#t:FixityDirection" title="GHC">FixityDirection</a> -&gt; <a href="GHC.html#t:FixityDirection" title="GHC">FixityDirection</a> <a href="../base/src/Data.Data.html#gmapT" class="link">Source</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -&gt; r' -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC.html#t:FixityDirection" title="GHC">FixityDirection</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQl" class="link">Source</a> <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: <span class="keyword">forall</span> r r'. (r' -&gt; r -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC.html#t:FixityDirection" title="GHC">FixityDirection</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQr" class="link">Source</a> <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC.html#t:FixityDirection" title="GHC">FixityDirection</a> -&gt; [u] <a href="../base/src/Data.Data.html#gmapQ" class="link">Source</a> <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC.html#t:FixityDirection" title="GHC">FixityDirection</a> -&gt; u <a href="../base/src/Data.Data.html#gmapQi" class="link">Source</a> <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="GHC-Prelude.html#t:Monad" title="GHC.Prelude">Monad</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:FixityDirection" title="GHC">FixityDirection</a> -&gt; m <a href="GHC.html#t:FixityDirection" title="GHC">FixityDirection</a> <a href="../base/src/Data.Data.html#gmapM" class="link">Source</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:FixityDirection" title="GHC">FixityDirection</a> -&gt; m <a href="GHC.html#t:FixityDirection" title="GHC">FixityDirection</a> <a href="../base/src/Data.Data.html#gmapMp" class="link">Source</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:FixityDirection" title="GHC">FixityDirection</a> -&gt; m <a href="GHC.html#t:FixityDirection" title="GHC">FixityDirection</a> <a href="../base/src/Data.Data.html#gmapMo" class="link">Source</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:FixityDirection:Binary:2"></span> <a href="GHC-Utils-Binary.html#t:Binary" title="GHC.Utils.Binary">Binary</a> <a href="GHC.html#t:FixityDirection" title="GHC">FixityDirection</a></span> <a href="src/GHC.Utils.Binary.html#line-1366" class="link">Source</a> <a href="#t:Binary" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:FixityDirection:Binary:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Utils-Binary.html">GHC.Utils.Binary</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put_">put_</a> :: <a href="GHC-Utils-Binary.html#t:BinHandle" title="GHC.Utils.Binary">BinHandle</a> -&gt; <a href="GHC.html#t:FixityDirection" title="GHC">FixityDirection</a> -&gt; <a href="GHC-Prelude.html#t:IO" title="GHC.Prelude">IO</a> () <a href="src/GHC.Utils.Binary.html#put_" class="link">Source</a> <a href="#v:put_" class="selflink">#</a></p><p class="src"><a href="#v:put">put</a> :: <a href="GHC-Utils-Binary.html#t:BinHandle" title="GHC.Utils.Binary">BinHandle</a> -&gt; <a href="GHC.html#t:FixityDirection" title="GHC">FixityDirection</a> -&gt; <a href="GHC-Prelude.html#t:IO" title="GHC.Prelude">IO</a> (<a href="GHC-Utils-Binary.html#t:Bin" title="GHC.Utils.Binary">Bin</a> <a href="GHC.html#t:FixityDirection" title="GHC">FixityDirection</a>) <a href="src/GHC.Utils.Binary.html#put" class="link">Source</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="GHC-Utils-Binary.html#t:BinHandle" title="GHC.Utils.Binary">BinHandle</a> -&gt; <a href="GHC-Prelude.html#t:IO" title="GHC.Prelude">IO</a> <a href="GHC.html#t:FixityDirection" title="GHC">FixityDirection</a> <a href="src/GHC.Utils.Binary.html#get" class="link">Source</a> <a href="#v:get" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:FixityDirection:Outputable:3"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC.html#t:FixityDirection" title="GHC">FixityDirection</a></span> <a href="src/GHC.Types.Basic.html#line-505" class="link">Source</a> <a href="#t:FixityDirection" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:FixityDirection:Outputable:3"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-Basic.html">GHC.Types.Basic</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC.html#t:FixityDirection" title="GHC">FixityDirection</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC.html#t:FixityDirection" title="GHC">FixityDirection</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:FixityDirection:Eq:4"></span> <a href="GHC-Prelude.html#t:Eq" title="GHC.Prelude">Eq</a> <a href="GHC.html#t:FixityDirection" title="GHC">FixityDirection</a></span> <a href="src/GHC.Types.Basic.html#line-503" class="link">Source</a> <a href="#t:FixityDirection" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:FixityDirection:Eq:4"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-Basic.html">GHC.Types.Basic</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="GHC.html#t:FixityDirection" title="GHC">FixityDirection</a> -&gt; <a href="GHC.html#t:FixityDirection" title="GHC">FixityDirection</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="GHC.html#t:FixityDirection" title="GHC">FixityDirection</a> -&gt; <a href="GHC.html#t:FixityDirection" title="GHC">FixityDirection</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><a id="v:defaultFixity" class="def">defaultFixity</a> :: <a href="GHC-Types-Basic.html#t:Fixity" title="GHC.Types.Basic">Fixity</a> <a href="src/GHC.Types.Basic.html#defaultFixity" class="link">Source</a> <a href="#v:defaultFixity" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:maxPrecedence" class="def">maxPrecedence</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> <a href="src/GHC.Types.Basic.html#maxPrecedence" class="link">Source</a> <a href="#v:maxPrecedence" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:negateFixity" class="def">negateFixity</a> :: <a href="GHC-Types-Basic.html#t:Fixity" title="GHC.Types.Basic">Fixity</a> <a href="src/GHC.Types.Basic.html#negateFixity" class="link">Source</a> <a href="#v:negateFixity" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:compareFixity" class="def">compareFixity</a> :: <a href="GHC-Types-Basic.html#t:Fixity" title="GHC.Types.Basic">Fixity</a> -&gt; <a href="GHC-Types-Basic.html#t:Fixity" title="GHC.Types.Basic">Fixity</a> -&gt; (<a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a>, <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a>) <a href="src/GHC.Types.Basic.html#compareFixity" class="link">Source</a> <a href="#v:compareFixity" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:LexicalFixity" class="def">LexicalFixity</a> <a href="src/GHC.Types.Basic.html#LexicalFixity" class="link">Source</a> <a href="#t:LexicalFixity" class="selflink">#</a></p><div class="doc"><p>Captures the fixity of declarations as they are parsed. This is not
 necessarily the same as the fixity declaration, as the normal fixity may be
 overridden using parens or backticks.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Prefix" class="def">Prefix</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Infix" class="def">Infix</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:LexicalFixity">Instances</h4><details id="i:LexicalFixity" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:LexicalFixity:Data:1"></span> <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> <a href="GHC.html#t:LexicalFixity" title="GHC">LexicalFixity</a></span> <a href="src/GHC.Types.Basic.html#line-552" class="link">Source</a> <a href="#t:LexicalFixity" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:LexicalFixity:Data:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-Basic.html">GHC.Types.Basic</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (d -&gt; b) -&gt; d -&gt; c b) -&gt; (<span class="keyword">forall</span> g. g -&gt; c g) -&gt; <a href="GHC.html#t:LexicalFixity" title="GHC">LexicalFixity</a> -&gt; c <a href="GHC.html#t:LexicalFixity" title="GHC">LexicalFixity</a> <a href="../base/src/Data.Data.html#gfoldl" class="link">Source</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; c (b -&gt; r) -&gt; c r) -&gt; (<span class="keyword">forall</span> r. r -&gt; c r) -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> -&gt; c <a href="GHC.html#t:LexicalFixity" title="GHC">LexicalFixity</a> <a href="../base/src/Data.Data.html#gunfold" class="link">Source</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="GHC.html#t:LexicalFixity" title="GHC">LexicalFixity</a> -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> <a href="../base/src/Data.Data.html#toConstr" class="link">Source</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="GHC.html#t:LexicalFixity" title="GHC">LexicalFixity</a> -&gt; <a href="../base/Data-Data.html#t:DataType" title="Data.Data">DataType</a> <a href="../base/src/Data.Data.html#dataTypeOf" class="link">Source</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (t d)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c <a href="GHC.html#t:LexicalFixity" title="GHC">LexicalFixity</a>) <a href="../base/src/Data.Data.html#dataCast1" class="link">Source</a> <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d e. (<a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d, <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> e) =&gt; c (t d e)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c <a href="GHC.html#t:LexicalFixity" title="GHC">LexicalFixity</a>) <a href="../base/src/Data.Data.html#dataCast2" class="link">Source</a> <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; b -&gt; b) -&gt; <a href="GHC.html#t:LexicalFixity" title="GHC">LexicalFixity</a> -&gt; <a href="GHC.html#t:LexicalFixity" title="GHC">LexicalFixity</a> <a href="../base/src/Data.Data.html#gmapT" class="link">Source</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -&gt; r' -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC.html#t:LexicalFixity" title="GHC">LexicalFixity</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQl" class="link">Source</a> <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: <span class="keyword">forall</span> r r'. (r' -&gt; r -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC.html#t:LexicalFixity" title="GHC">LexicalFixity</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQr" class="link">Source</a> <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC.html#t:LexicalFixity" title="GHC">LexicalFixity</a> -&gt; [u] <a href="../base/src/Data.Data.html#gmapQ" class="link">Source</a> <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC.html#t:LexicalFixity" title="GHC">LexicalFixity</a> -&gt; u <a href="../base/src/Data.Data.html#gmapQi" class="link">Source</a> <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="GHC-Prelude.html#t:Monad" title="GHC.Prelude">Monad</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:LexicalFixity" title="GHC">LexicalFixity</a> -&gt; m <a href="GHC.html#t:LexicalFixity" title="GHC">LexicalFixity</a> <a href="../base/src/Data.Data.html#gmapM" class="link">Source</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:LexicalFixity" title="GHC">LexicalFixity</a> -&gt; m <a href="GHC.html#t:LexicalFixity" title="GHC">LexicalFixity</a> <a href="../base/src/Data.Data.html#gmapMp" class="link">Source</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:LexicalFixity" title="GHC">LexicalFixity</a> -&gt; m <a href="GHC.html#t:LexicalFixity" title="GHC">LexicalFixity</a> <a href="../base/src/Data.Data.html#gmapMo" class="link">Source</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:LexicalFixity:Outputable:2"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC.html#t:LexicalFixity" title="GHC">LexicalFixity</a></span> <a href="src/GHC.Types.Basic.html#line-554" class="link">Source</a> <a href="#t:LexicalFixity" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:LexicalFixity:Outputable:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-Basic.html">GHC.Types.Basic</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC.html#t:LexicalFixity" title="GHC">LexicalFixity</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC.html#t:LexicalFixity" title="GHC">LexicalFixity</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:LexicalFixity:Eq:3"></span> <a href="GHC-Prelude.html#t:Eq" title="GHC.Prelude">Eq</a> <a href="GHC.html#t:LexicalFixity" title="GHC">LexicalFixity</a></span> <a href="src/GHC.Types.Basic.html#line-552" class="link">Source</a> <a href="#t:LexicalFixity" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:LexicalFixity:Eq:3"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-Basic.html">GHC.Types.Basic</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="GHC.html#t:LexicalFixity" title="GHC">LexicalFixity</a> -&gt; <a href="GHC.html#t:LexicalFixity" title="GHC">LexicalFixity</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="GHC.html#t:LexicalFixity" title="GHC">LexicalFixity</a> -&gt; <a href="GHC.html#t:LexicalFixity" title="GHC">LexicalFixity</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><a href="#g:36" id="g:36"><h2>Source locations</h2></a><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:SrcLoc" class="def">SrcLoc</a> <a href="src/GHC.Types.SrcLoc.html#SrcLoc" class="link">Source</a> <a href="#t:SrcLoc" class="selflink">#</a></p><div class="doc"><p>Source Location</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:RealSrcLoc" class="def">RealSrcLoc</a> !<a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a> !(<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Types-SrcLoc.html#t:BufPos" title="GHC.Types.SrcLoc">BufPos</a>)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:UnhelpfulLoc" class="def">UnhelpfulLoc</a> <a href="GHC-Data-FastString.html#t:FastString" title="GHC.Data.FastString">FastString</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:SrcLoc">Instances</h4><details id="i:SrcLoc" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:SrcLoc:Show:1"></span> <a href="GHC-Prelude.html#t:Show" title="GHC.Prelude">Show</a> <a href="GHC.html#t:SrcLoc" title="GHC">SrcLoc</a></span> <a href="src/GHC.Types.SrcLoc.html#line-232" class="link">Source</a> <a href="#t:SrcLoc" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:SrcLoc:Show:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-SrcLoc.html">GHC.Types.SrcLoc</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; <a href="GHC.html#t:SrcLoc" title="GHC">SrcLoc</a> -&gt; <a href="GHC-Prelude.html#t:ShowS" title="GHC.Prelude">ShowS</a> <a href="../base/src/GHC.Show.html#showsPrec" class="link">Source</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="GHC.html#t:SrcLoc" title="GHC">SrcLoc</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> <a href="../base/src/GHC.Show.html#show" class="link">Source</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="GHC.html#t:SrcLoc" title="GHC">SrcLoc</a>] -&gt; <a href="GHC-Prelude.html#t:ShowS" title="GHC.Prelude">ShowS</a> <a href="../base/src/GHC.Show.html#showList" class="link">Source</a> <a href="#v:showList" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:SrcLoc:Outputable:2"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC.html#t:SrcLoc" title="GHC">SrcLoc</a></span> <a href="src/GHC.Types.SrcLoc.html#line-326" class="link">Source</a> <a href="#t:SrcLoc" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:SrcLoc:Outputable:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-SrcLoc.html">GHC.Types.SrcLoc</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC.html#t:SrcLoc" title="GHC">SrcLoc</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC.html#t:SrcLoc" title="GHC">SrcLoc</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:SrcLoc:Eq:3"></span> <a href="GHC-Prelude.html#t:Eq" title="GHC.Prelude">Eq</a> <a href="GHC.html#t:SrcLoc" title="GHC">SrcLoc</a></span> <a href="src/GHC.Types.SrcLoc.html#line-232" class="link">Source</a> <a href="#t:SrcLoc" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:SrcLoc:Eq:3"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-SrcLoc.html">GHC.Types.SrcLoc</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="GHC.html#t:SrcLoc" title="GHC">SrcLoc</a> -&gt; <a href="GHC.html#t:SrcLoc" title="GHC">SrcLoc</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="GHC.html#t:SrcLoc" title="GHC">SrcLoc</a> -&gt; <a href="GHC.html#t:SrcLoc" title="GHC">SrcLoc</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:RealSrcLoc" class="def">RealSrcLoc</a> <a href="src/GHC.Types.SrcLoc.html#RealSrcLoc" class="link">Source</a> <a href="#t:RealSrcLoc" class="selflink">#</a></p><div class="doc"><p>Real Source Location</p><p>Represents a single point within a file</p></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:RealSrcLoc">Instances</h4><details id="i:RealSrcLoc" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:RealSrcLoc:Show:1"></span> <a href="GHC-Prelude.html#t:Show" title="GHC.Prelude">Show</a> <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a></span> <a href="src/GHC.Types.SrcLoc.html#line-628" class="link">Source</a> <a href="#t:RealSrcLoc" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:RealSrcLoc:Show:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-SrcLoc.html">GHC.Types.SrcLoc</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a> -&gt; <a href="GHC-Prelude.html#t:ShowS" title="GHC.Prelude">ShowS</a> <a href="../base/src/GHC.Show.html#showsPrec" class="link">Source</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> <a href="../base/src/GHC.Show.html#show" class="link">Source</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a>] -&gt; <a href="GHC-Prelude.html#t:ShowS" title="GHC.Prelude">ShowS</a> <a href="../base/src/GHC.Show.html#showList" class="link">Source</a> <a href="#v:showList" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:RealSrcLoc:Outputable:2"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a></span> <a href="src/GHC.Types.SrcLoc.html#line-310" class="link">Source</a> <a href="#t:RealSrcLoc" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:RealSrcLoc:Outputable:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-SrcLoc.html">GHC.Types.SrcLoc</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:RealSrcLoc:Eq:3"></span> <a href="GHC-Prelude.html#t:Eq" title="GHC.Prelude">Eq</a> <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a></span> <a href="src/GHC.Types.SrcLoc.html#line-152" class="link">Source</a> <a href="#t:RealSrcLoc" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:RealSrcLoc:Eq:3"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-SrcLoc.html">GHC.Types.SrcLoc</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a> -&gt; <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a> -&gt; <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:RealSrcLoc:Ord:4"></span> <a href="GHC-Prelude.html#t:Ord" title="GHC.Prelude">Ord</a> <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a></span> <a href="src/GHC.Types.SrcLoc.html#line-152" class="link">Source</a> <a href="#t:RealSrcLoc" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:RealSrcLoc:Ord:4"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-SrcLoc.html">GHC.Types.SrcLoc</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a> -&gt; <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a> -&gt; <a href="GHC-Prelude.html#t:Ordering" title="GHC.Prelude">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(&lt;)</a> :: <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a> -&gt; <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(&lt;=)</a> :: <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a> -&gt; <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(&gt;)</a> :: <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a> -&gt; <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(&gt;=)</a> :: <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a> -&gt; <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a> -&gt; <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a> -&gt; <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a> -&gt; <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a> -&gt; <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a> <a href="#v:min" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><a id="v:mkSrcLoc" class="def">mkSrcLoc</a> :: <a href="GHC-Data-FastString.html#t:FastString" title="GHC.Data.FastString">FastString</a> -&gt; <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; <a href="GHC.html#t:SrcLoc" title="GHC">SrcLoc</a> <a href="src/GHC.Types.SrcLoc.html#mkSrcLoc" class="link">Source</a> <a href="#v:mkSrcLoc" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:noSrcLoc" class="def">noSrcLoc</a> :: <a href="GHC.html#t:SrcLoc" title="GHC">SrcLoc</a> <a href="src/GHC.Types.SrcLoc.html#noSrcLoc" class="link">Source</a> <a href="#v:noSrcLoc" class="selflink">#</a></p><div class="doc"><p>Built-in &quot;bad&quot; <code><a href="GHC.html#t:SrcLoc" title="GHC">SrcLoc</a></code> values for particular locations</p></div></div><div class="top"><p class="src"><a id="v:srcLocFile" class="def">srcLocFile</a> :: <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a> -&gt; <a href="GHC-Data-FastString.html#t:FastString" title="GHC.Data.FastString">FastString</a> <a href="src/GHC.Types.SrcLoc.html#srcLocFile" class="link">Source</a> <a href="#v:srcLocFile" class="selflink">#</a></p><div class="doc"><p>Gives the filename of the <code><a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a></code></p></div></div><div class="top"><p class="src"><a id="v:srcLocLine" class="def">srcLocLine</a> :: <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a> -&gt; <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> <a href="src/GHC.Types.SrcLoc.html#srcLocLine" class="link">Source</a> <a href="#v:srcLocLine" class="selflink">#</a></p><div class="doc"><p>Raises an error when used on a &quot;bad&quot; <code><a href="GHC.html#t:SrcLoc" title="GHC">SrcLoc</a></code></p></div></div><div class="top"><p class="src"><a id="v:srcLocCol" class="def">srcLocCol</a> :: <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a> -&gt; <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> <a href="src/GHC.Types.SrcLoc.html#srcLocCol" class="link">Source</a> <a href="#v:srcLocCol" class="selflink">#</a></p><div class="doc"><p>Raises an error when used on a &quot;bad&quot; <code><a href="GHC.html#t:SrcLoc" title="GHC">SrcLoc</a></code></p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:SrcSpan" class="def">SrcSpan</a> <a href="src/GHC.Types.SrcLoc.html#SrcSpan" class="link">Source</a> <a href="#t:SrcSpan" class="selflink">#</a></p><div class="doc"><p>Source Span</p><p>A <code><a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></code> identifies either a specific portion of a text file
 or a human-readable description of a location.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:RealSrcSpan" class="def">RealSrcSpan</a> !<a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> !(<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Types-SrcLoc.html#t:BufSpan" title="GHC.Types.SrcLoc">BufSpan</a>)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:UnhelpfulSpan" class="def">UnhelpfulSpan</a> !<a href="GHC-Types-SrcLoc.html#t:UnhelpfulSpanReason" title="GHC.Types.SrcLoc">UnhelpfulSpanReason</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:SrcSpan">Instances</h4><details id="i:SrcSpan" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:SrcSpan:Data:1"></span> <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></span> <a href="src/GHC.Types.SrcLoc.html#line-336" class="link">Source</a> <a href="#t:SrcSpan" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:SrcSpan:Data:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-SrcLoc.html">GHC.Types.SrcLoc</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (d -&gt; b) -&gt; d -&gt; c b) -&gt; (<span class="keyword">forall</span> g. g -&gt; c g) -&gt; <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; c <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> <a href="../base/src/Data.Data.html#gfoldl" class="link">Source</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; c (b -&gt; r) -&gt; c r) -&gt; (<span class="keyword">forall</span> r. r -&gt; c r) -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> -&gt; c <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> <a href="../base/src/Data.Data.html#gunfold" class="link">Source</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> <a href="../base/src/Data.Data.html#toConstr" class="link">Source</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="../base/Data-Data.html#t:DataType" title="Data.Data">DataType</a> <a href="../base/src/Data.Data.html#dataTypeOf" class="link">Source</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (t d)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a>) <a href="../base/src/Data.Data.html#dataCast1" class="link">Source</a> <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d e. (<a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d, <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> e) =&gt; c (t d e)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a>) <a href="../base/src/Data.Data.html#dataCast2" class="link">Source</a> <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; b -&gt; b) -&gt; <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> <a href="../base/src/Data.Data.html#gmapT" class="link">Source</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -&gt; r' -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQl" class="link">Source</a> <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: <span class="keyword">forall</span> r r'. (r' -&gt; r -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQr" class="link">Source</a> <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; [u] <a href="../base/src/Data.Data.html#gmapQ" class="link">Source</a> <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; u <a href="../base/src/Data.Data.html#gmapQi" class="link">Source</a> <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="GHC-Prelude.html#t:Monad" title="GHC.Prelude">Monad</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; m <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> <a href="../base/src/Data.Data.html#gmapM" class="link">Source</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; m <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> <a href="../base/src/Data.Data.html#gmapMp" class="link">Source</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; m <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> <a href="../base/src/Data.Data.html#gmapMo" class="link">Source</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:SrcSpan:Show:2"></span> <a href="GHC-Prelude.html#t:Show" title="GHC.Prelude">Show</a> <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></span> <a href="src/GHC.Types.SrcLoc.html#line-389" class="link">Source</a> <a href="#t:SrcSpan" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:SrcSpan:Show:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-SrcLoc.html">GHC.Types.SrcLoc</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:ShowS" title="GHC.Prelude">ShowS</a> <a href="../base/src/GHC.Show.html#showsPrec" class="link">Source</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> <a href="../base/src/GHC.Show.html#show" class="link">Source</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a>] -&gt; <a href="GHC-Prelude.html#t:ShowS" title="GHC.Prelude">ShowS</a> <a href="../base/src/GHC.Show.html#showList" class="link">Source</a> <a href="#v:showList" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:SrcSpan:NFData:3"></span> <a href="../deepseq/Control-DeepSeq.html#t:NFData" title="Control.DeepSeq">NFData</a> <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></span> <a href="src/GHC.Types.SrcLoc.html#line-432" class="link">Source</a> <a href="#t:SrcSpan" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:SrcSpan:NFData:3"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-SrcLoc.html">GHC.Types.SrcLoc</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:rnf">rnf</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; () <a href="../deepseq/src/Control.DeepSeq.html#rnf" class="link">Source</a> <a href="#v:rnf" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:SrcSpan:Binary:4"></span> <a href="GHC-Utils-Binary.html#t:Binary" title="GHC.Utils.Binary">Binary</a> <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></span> <a href="src/GHC.Utils.Binary.html#line-1477" class="link">Source</a> <a href="#t:Binary" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:SrcSpan:Binary:4"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Utils-Binary.html">GHC.Utils.Binary</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put_">put_</a> :: <a href="GHC-Utils-Binary.html#t:BinHandle" title="GHC.Utils.Binary">BinHandle</a> -&gt; <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:IO" title="GHC.Prelude">IO</a> () <a href="src/GHC.Utils.Binary.html#put_" class="link">Source</a> <a href="#v:put_" class="selflink">#</a></p><p class="src"><a href="#v:put">put</a> :: <a href="GHC-Utils-Binary.html#t:BinHandle" title="GHC.Utils.Binary">BinHandle</a> -&gt; <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:IO" title="GHC.Prelude">IO</a> (<a href="GHC-Utils-Binary.html#t:Bin" title="GHC.Utils.Binary">Bin</a> <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a>) <a href="src/GHC.Utils.Binary.html#put" class="link">Source</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="GHC-Utils-Binary.html#t:BinHandle" title="GHC.Utils.Binary">BinHandle</a> -&gt; <a href="GHC-Prelude.html#t:IO" title="GHC.Prelude">IO</a> <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> <a href="src/GHC.Utils.Binary.html#get" class="link">Source</a> <a href="#v:get" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:SrcSpan:ToJson:5"></span> <a href="GHC-Utils-Json.html#t:ToJson" title="GHC.Utils.Json">ToJson</a> <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></span> <a href="src/GHC.Types.SrcLoc.html#line-420" class="link">Source</a> <a href="#t:SrcSpan" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:SrcSpan:ToJson:5"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-SrcLoc.html">GHC.Types.SrcLoc</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:json">json</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC-Utils-Json.html#t:JsonDoc" title="GHC.Utils.Json">JsonDoc</a> <a href="src/GHC.Utils.Json.html#json" class="link">Source</a> <a href="#v:json" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:SrcSpan:Outputable:6"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></span> <a href="src/GHC.Types.SrcLoc.html#line-658" class="link">Source</a> <a href="#t:SrcSpan" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:SrcSpan:Outputable:6"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-SrcLoc.html">GHC.Types.SrcLoc</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:SrcSpan:Eq:7"></span> <a href="GHC-Prelude.html#t:Eq" title="GHC.Prelude">Eq</a> <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></span> <a href="src/GHC.Types.SrcLoc.html#line-389" class="link">Source</a> <a href="#t:SrcSpan" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:SrcSpan:Eq:7"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-SrcLoc.html">GHC.Types.SrcLoc</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:SrcSpan:Data:8"></span> <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a>)</span> <a href="src/GHC.Hs.Instances.html#line-434" class="link">Source</a> <a href="#t:Data" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:SrcSpan:Data:8"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Hs-Instances.html">GHC.Hs.Instances</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (d -&gt; b) -&gt; d -&gt; c b) -&gt; (<span class="keyword">forall</span> g. g -&gt; c g) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a> -&gt; c (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a>) <a href="../base/src/Data.Data.html#gfoldl" class="link">Source</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; c (b -&gt; r) -&gt; c r) -&gt; (<span class="keyword">forall</span> r. r -&gt; c r) -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> -&gt; c (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a>) <a href="../base/src/Data.Data.html#gunfold" class="link">Source</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a> -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> <a href="../base/src/Data.Data.html#toConstr" class="link">Source</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a> -&gt; <a href="../base/Data-Data.html#t:DataType" title="Data.Data">DataType</a> <a href="../base/src/Data.Data.html#dataTypeOf" class="link">Source</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (t d)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a>)) <a href="../base/src/Data.Data.html#dataCast1" class="link">Source</a> <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d e. (<a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d, <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> e) =&gt; c (t d e)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a>)) <a href="../base/src/Data.Data.html#dataCast2" class="link">Source</a> <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; b -&gt; b) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a> -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a> <a href="../base/src/Data.Data.html#gmapT" class="link">Source</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -&gt; r' -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQl" class="link">Source</a> <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: <span class="keyword">forall</span> r r'. (r' -&gt; r -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQr" class="link">Source</a> <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a> -&gt; [u] <a href="../base/src/Data.Data.html#gmapQ" class="link">Source</a> <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a> -&gt; u <a href="../base/src/Data.Data.html#gmapQi" class="link">Source</a> <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="GHC-Prelude.html#t:Monad" title="GHC.Prelude">Monad</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a> -&gt; m (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a>) <a href="../base/src/Data.Data.html#gmapM" class="link">Source</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a> -&gt; m (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a>) <a href="../base/src/Data.Data.html#gmapMp" class="link">Source</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a> -&gt; m (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a>) <a href="../base/src/Data.Data.html#gmapMo" class="link">Source</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:SrcSpan:Data:9"></span> <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a>)</span> <a href="src/GHC.Hs.Instances.html#line-435" class="link">Source</a> <a href="#t:Data" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:SrcSpan:Data:9"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Hs-Instances.html">GHC.Hs.Instances</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (d -&gt; b) -&gt; d -&gt; c b) -&gt; (<span class="keyword">forall</span> g. g -&gt; c g) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a> -&gt; c (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a>) <a href="../base/src/Data.Data.html#gfoldl" class="link">Source</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; c (b -&gt; r) -&gt; c r) -&gt; (<span class="keyword">forall</span> r. r -&gt; c r) -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> -&gt; c (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a>) <a href="../base/src/Data.Data.html#gunfold" class="link">Source</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a> -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> <a href="../base/src/Data.Data.html#toConstr" class="link">Source</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a> -&gt; <a href="../base/Data-Data.html#t:DataType" title="Data.Data">DataType</a> <a href="../base/src/Data.Data.html#dataTypeOf" class="link">Source</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (t d)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a>)) <a href="../base/src/Data.Data.html#dataCast1" class="link">Source</a> <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d e. (<a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d, <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> e) =&gt; c (t d e)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a>)) <a href="../base/src/Data.Data.html#dataCast2" class="link">Source</a> <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; b -&gt; b) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a> -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a> <a href="../base/src/Data.Data.html#gmapT" class="link">Source</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -&gt; r' -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQl" class="link">Source</a> <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: <span class="keyword">forall</span> r r'. (r' -&gt; r -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQr" class="link">Source</a> <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a> -&gt; [u] <a href="../base/src/Data.Data.html#gmapQ" class="link">Source</a> <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a> -&gt; u <a href="../base/src/Data.Data.html#gmapQi" class="link">Source</a> <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="GHC-Prelude.html#t:Monad" title="GHC.Prelude">Monad</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a> -&gt; m (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a>) <a href="../base/src/Data.Data.html#gmapM" class="link">Source</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a> -&gt; m (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a>) <a href="../base/src/Data.Data.html#gmapMp" class="link">Source</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a> -&gt; m (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a>) <a href="../base/src/Data.Data.html#gmapMo" class="link">Source</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:SrcSpan:Data:10"></span> <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a>)</span> <a href="src/GHC.Hs.Instances.html#line-436" class="link">Source</a> <a href="#t:Data" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:SrcSpan:Data:10"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Hs-Instances.html">GHC.Hs.Instances</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (d -&gt; b) -&gt; d -&gt; c b) -&gt; (<span class="keyword">forall</span> g. g -&gt; c g) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a> -&gt; c (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a>) <a href="../base/src/Data.Data.html#gfoldl" class="link">Source</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; c (b -&gt; r) -&gt; c r) -&gt; (<span class="keyword">forall</span> r. r -&gt; c r) -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> -&gt; c (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a>) <a href="../base/src/Data.Data.html#gunfold" class="link">Source</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a> -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> <a href="../base/src/Data.Data.html#toConstr" class="link">Source</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a> -&gt; <a href="../base/Data-Data.html#t:DataType" title="Data.Data">DataType</a> <a href="../base/src/Data.Data.html#dataTypeOf" class="link">Source</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (t d)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a>)) <a href="../base/src/Data.Data.html#dataCast1" class="link">Source</a> <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d e. (<a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d, <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> e) =&gt; c (t d e)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a>)) <a href="../base/src/Data.Data.html#dataCast2" class="link">Source</a> <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; b -&gt; b) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a> -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a> <a href="../base/src/Data.Data.html#gmapT" class="link">Source</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -&gt; r' -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQl" class="link">Source</a> <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: <span class="keyword">forall</span> r r'. (r' -&gt; r -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQr" class="link">Source</a> <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a> -&gt; [u] <a href="../base/src/Data.Data.html#gmapQ" class="link">Source</a> <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a> -&gt; u <a href="../base/src/Data.Data.html#gmapQi" class="link">Source</a> <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="GHC-Prelude.html#t:Monad" title="GHC.Prelude">Monad</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a> -&gt; m (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a>) <a href="../base/src/Data.Data.html#gmapM" class="link">Source</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a> -&gt; m (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a>) <a href="../base/src/Data.Data.html#gmapMp" class="link">Source</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a> -&gt; m (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a>) <a href="../base/src/Data.Data.html#gmapMo" class="link">Source</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:SrcSpan:NamedThing:11"></span> <a href="GHC.html#t:NamedThing" title="GHC">NamedThing</a> e =&gt; <a href="GHC.html#t:NamedThing" title="GHC">NamedThing</a> (<a href="GHC.html#t:Located" title="GHC">Located</a> e)</span> <a href="src/GHC.Types.Name.html#line-708" class="link">Source</a> <a href="#t:NamedThing" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:SrcSpan:NamedThing:11"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-Name.html">GHC.Types.Name</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getOccName">getOccName</a> :: <a href="GHC.html#t:Located" title="GHC">Located</a> e -&gt; <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a> <a href="src/GHC.Types.Name.html#getOccName" class="link">Source</a> <a href="#v:getOccName" class="selflink">#</a></p><p class="src"><a href="#v:getName">getName</a> :: <a href="GHC.html#t:Located" title="GHC">Located</a> e -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="src/GHC.Types.Name.html#getName" class="link">Source</a> <a href="#v:getName" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:SrcSpan:Binary:12"></span> <a href="GHC-Utils-Binary.html#t:Binary" title="GHC.Utils.Binary">Binary</a> a =&gt; <a href="GHC-Utils-Binary.html#t:Binary" title="GHC.Utils.Binary">Binary</a> (<a href="GHC.html#t:Located" title="GHC">Located</a> a)</span> <a href="src/GHC.Utils.Binary.html#line-1420" class="link">Source</a> <a href="#t:Binary" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:SrcSpan:Binary:12"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Utils-Binary.html">GHC.Utils.Binary</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put_">put_</a> :: <a href="GHC-Utils-Binary.html#t:BinHandle" title="GHC.Utils.Binary">BinHandle</a> -&gt; <a href="GHC.html#t:Located" title="GHC">Located</a> a -&gt; <a href="GHC-Prelude.html#t:IO" title="GHC.Prelude">IO</a> () <a href="src/GHC.Utils.Binary.html#put_" class="link">Source</a> <a href="#v:put_" class="selflink">#</a></p><p class="src"><a href="#v:put">put</a> :: <a href="GHC-Utils-Binary.html#t:BinHandle" title="GHC.Utils.Binary">BinHandle</a> -&gt; <a href="GHC.html#t:Located" title="GHC">Located</a> a -&gt; <a href="GHC-Prelude.html#t:IO" title="GHC.Prelude">IO</a> (<a href="GHC-Utils-Binary.html#t:Bin" title="GHC.Utils.Binary">Bin</a> (<a href="GHC.html#t:Located" title="GHC">Located</a> a)) <a href="src/GHC.Utils.Binary.html#put" class="link">Source</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="GHC-Utils-Binary.html#t:BinHandle" title="GHC.Utils.Binary">BinHandle</a> -&gt; <a href="GHC-Prelude.html#t:IO" title="GHC.Prelude">IO</a> (<a href="GHC.html#t:Located" title="GHC">Located</a> a) <a href="src/GHC.Utils.Binary.html#get" class="link">Source</a> <a href="#v:get" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:RealSrcSpan" class="def">RealSrcSpan</a> <a href="src/GHC.Types.SrcLoc.html#RealSrcSpan" class="link">Source</a> <a href="#t:RealSrcSpan" class="selflink">#</a></p><div class="doc"><p>A <code><a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a></code> delimits a portion of a text file.  It could be represented
by a pair of (line,column) coordinates, but in fact we optimise
slightly by using more compact representations for single-line and
zero-length spans, both of which are quite common.</p><p>The end position is defined to be the column <em>after</em> the end of the
span.  That is, a span of (1,1)-(1,2) is one character long, and a
span of (1,1)-(1,1) is zero characters long.</p><p>Real Source Span</p></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:RealSrcSpan">Instances</h4><details id="i:RealSrcSpan" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:RealSrcSpan:Data:1"></span> <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a></span> <a href="src/GHC.Types.SrcLoc.html#line-330" class="link">Source</a> <a href="#t:RealSrcSpan" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:RealSrcSpan:Data:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-SrcLoc.html">GHC.Types.SrcLoc</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (d -&gt; b) -&gt; d -&gt; c b) -&gt; (<span class="keyword">forall</span> g. g -&gt; c g) -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; c <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> <a href="../base/src/Data.Data.html#gfoldl" class="link">Source</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; c (b -&gt; r) -&gt; c r) -&gt; (<span class="keyword">forall</span> r. r -&gt; c r) -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> -&gt; c <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> <a href="../base/src/Data.Data.html#gunfold" class="link">Source</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> <a href="../base/src/Data.Data.html#toConstr" class="link">Source</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="../base/Data-Data.html#t:DataType" title="Data.Data">DataType</a> <a href="../base/src/Data.Data.html#dataTypeOf" class="link">Source</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (t d)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a>) <a href="../base/src/Data.Data.html#dataCast1" class="link">Source</a> <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d e. (<a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d, <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> e) =&gt; c (t d e)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a>) <a href="../base/src/Data.Data.html#dataCast2" class="link">Source</a> <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; b -&gt; b) -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> <a href="../base/src/Data.Data.html#gmapT" class="link">Source</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -&gt; r' -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQl" class="link">Source</a> <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: <span class="keyword">forall</span> r r'. (r' -&gt; r -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQr" class="link">Source</a> <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; [u] <a href="../base/src/Data.Data.html#gmapQ" class="link">Source</a> <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; u <a href="../base/src/Data.Data.html#gmapQi" class="link">Source</a> <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="GHC-Prelude.html#t:Monad" title="GHC.Prelude">Monad</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; m <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> <a href="../base/src/Data.Data.html#gmapM" class="link">Source</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; m <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> <a href="../base/src/Data.Data.html#gmapMp" class="link">Source</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; m <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> <a href="../base/src/Data.Data.html#gmapMo" class="link">Source</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:RealSrcSpan:Show:2"></span> <a href="GHC-Prelude.html#t:Show" title="GHC.Prelude">Show</a> <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a></span> <a href="src/GHC.Types.SrcLoc.html#line-633" class="link">Source</a> <a href="#t:RealSrcSpan" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:RealSrcSpan:Show:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-SrcLoc.html">GHC.Types.SrcLoc</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:ShowS" title="GHC.Prelude">ShowS</a> <a href="../base/src/GHC.Show.html#showsPrec" class="link">Source</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> <a href="../base/src/GHC.Show.html#show" class="link">Source</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a>] -&gt; <a href="GHC-Prelude.html#t:ShowS" title="GHC.Prelude">ShowS</a> <a href="../base/src/GHC.Show.html#showList" class="link">Source</a> <a href="#v:showList" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:RealSrcSpan:Binary:3"></span> <a href="GHC-Utils-Binary.html#t:Binary" title="GHC.Utils.Binary">Binary</a> <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a></span> <a href="src/GHC.Utils.Binary.html#line-1430" class="link">Source</a> <a href="#t:Binary" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:RealSrcSpan:Binary:3"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Utils-Binary.html">GHC.Utils.Binary</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put_">put_</a> :: <a href="GHC-Utils-Binary.html#t:BinHandle" title="GHC.Utils.Binary">BinHandle</a> -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:IO" title="GHC.Prelude">IO</a> () <a href="src/GHC.Utils.Binary.html#put_" class="link">Source</a> <a href="#v:put_" class="selflink">#</a></p><p class="src"><a href="#v:put">put</a> :: <a href="GHC-Utils-Binary.html#t:BinHandle" title="GHC.Utils.Binary">BinHandle</a> -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:IO" title="GHC.Prelude">IO</a> (<a href="GHC-Utils-Binary.html#t:Bin" title="GHC.Utils.Binary">Bin</a> <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a>) <a href="src/GHC.Utils.Binary.html#put" class="link">Source</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="GHC-Utils-Binary.html#t:BinHandle" title="GHC.Utils.Binary">BinHandle</a> -&gt; <a href="GHC-Prelude.html#t:IO" title="GHC.Prelude">IO</a> <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> <a href="src/GHC.Utils.Binary.html#get" class="link">Source</a> <a href="#v:get" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:RealSrcSpan:ToJson:4"></span> <a href="GHC-Utils-Json.html#t:ToJson" title="GHC.Utils.Json">ToJson</a> <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a></span> <a href="src/GHC.Types.SrcLoc.html#line-424" class="link">Source</a> <a href="#t:RealSrcSpan" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:RealSrcSpan:ToJson:4"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-SrcLoc.html">GHC.Types.SrcLoc</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:json">json</a> :: <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC-Utils-Json.html#t:JsonDoc" title="GHC.Utils.Json">JsonDoc</a> <a href="src/GHC.Utils.Json.html#json" class="link">Source</a> <a href="#v:json" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:RealSrcSpan:Outputable:5"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a></span> <a href="src/GHC.Types.SrcLoc.html#line-647" class="link">Source</a> <a href="#t:RealSrcSpan" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:RealSrcSpan:Outputable:5"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-SrcLoc.html">GHC.Types.SrcLoc</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:RealSrcSpan:Eq:6"></span> <a href="GHC-Prelude.html#t:Eq" title="GHC.Prelude">Eq</a> <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a></span> <a href="src/GHC.Types.SrcLoc.html#line-370" class="link">Source</a> <a href="#t:RealSrcSpan" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:RealSrcSpan:Eq:6"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-SrcLoc.html">GHC.Types.SrcLoc</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:RealSrcSpan:Ord:7"></span> <a href="GHC-Prelude.html#t:Ord" title="GHC.Prelude">Ord</a> <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a></span> <a href="src/GHC.Types.SrcLoc.html#line-623" class="link">Source</a> <a href="#t:RealSrcSpan" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:RealSrcSpan:Ord:7"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-SrcLoc.html">GHC.Types.SrcLoc</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:Ordering" title="GHC.Prelude">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(&lt;)</a> :: <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(&lt;=)</a> :: <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(&gt;)</a> :: <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(&gt;=)</a> :: <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> <a href="#v:min" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><a id="v:mkSrcSpan" class="def">mkSrcSpan</a> :: <a href="GHC.html#t:SrcLoc" title="GHC">SrcLoc</a> -&gt; <a href="GHC.html#t:SrcLoc" title="GHC">SrcLoc</a> -&gt; <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> <a href="src/GHC.Types.SrcLoc.html#mkSrcSpan" class="link">Source</a> <a href="#v:mkSrcSpan" class="selflink">#</a></p><div class="doc"><p>Create a <code><a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></code> between two points in a file</p></div></div><div class="top"><p class="src"><a id="v:srcLocSpan" class="def">srcLocSpan</a> :: <a href="GHC.html#t:SrcLoc" title="GHC">SrcLoc</a> -&gt; <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> <a href="src/GHC.Types.SrcLoc.html#srcLocSpan" class="link">Source</a> <a href="#v:srcLocSpan" class="selflink">#</a></p><div class="doc"><p>Create a <code><a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></code> corresponding to a single point</p></div></div><div class="top"><p class="src"><a id="v:isGoodSrcSpan" class="def">isGoodSrcSpan</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Types.SrcLoc.html#isGoodSrcSpan" class="link">Source</a> <a href="#v:isGoodSrcSpan" class="selflink">#</a></p><div class="doc"><p>Test if a <code><a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></code> is &quot;good&quot;, i.e. has precise location information</p></div></div><div class="top"><p class="src"><a id="v:noSrcSpan" class="def">noSrcSpan</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> <a href="src/GHC.Types.SrcLoc.html#noSrcSpan" class="link">Source</a> <a href="#v:noSrcSpan" class="selflink">#</a></p><div class="doc"><p>Built-in &quot;bad&quot; <code><a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></code>s for common sources of location uncertainty</p></div></div><div class="top"><p class="src"><a id="v:srcSpanStart" class="def">srcSpanStart</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC.html#t:SrcLoc" title="GHC">SrcLoc</a> <a href="src/GHC.Types.SrcLoc.html#srcSpanStart" class="link">Source</a> <a href="#v:srcSpanStart" class="selflink">#</a></p><div class="doc"><p>Returns the location at the start of the <code><a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></code> or a &quot;bad&quot; <code><a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></code> if that is unavailable</p></div></div><div class="top"><p class="src"><a id="v:srcSpanEnd" class="def">srcSpanEnd</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC.html#t:SrcLoc" title="GHC">SrcLoc</a> <a href="src/GHC.Types.SrcLoc.html#srcSpanEnd" class="link">Source</a> <a href="#v:srcSpanEnd" class="selflink">#</a></p><div class="doc"><p>Returns the location at the end of the <code><a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></code> or a &quot;bad&quot; <code><a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></code> if that is unavailable</p></div></div><div class="top"><p class="src"><a id="v:srcSpanFile" class="def">srcSpanFile</a> :: <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC-Data-FastString.html#t:FastString" title="GHC.Data.FastString">FastString</a> <a href="src/GHC.Types.SrcLoc.html#srcSpanFile" class="link">Source</a> <a href="#v:srcSpanFile" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:srcSpanStartLine" class="def">srcSpanStartLine</a> :: <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> <a href="src/GHC.Types.SrcLoc.html#srcSpanStartLine" class="link">Source</a> <a href="#v:srcSpanStartLine" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:srcSpanEndLine" class="def">srcSpanEndLine</a> :: <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> <a href="src/GHC.Types.SrcLoc.html#srcSpanEndLine" class="link">Source</a> <a href="#v:srcSpanEndLine" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:srcSpanStartCol" class="def">srcSpanStartCol</a> :: <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> <a href="src/GHC.Types.SrcLoc.html#srcSpanStartCol" class="link">Source</a> <a href="#v:srcSpanStartCol" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:srcSpanEndCol" class="def">srcSpanEndCol</a> :: <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> <a href="src/GHC.Types.SrcLoc.html#srcSpanEndCol" class="link">Source</a> <a href="#v:srcSpanEndCol" class="selflink">#</a></p></div><a href="#g:37" id="g:37"><h2>Located</h2></a><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:GenLocated" class="def">GenLocated</a> l e <a href="src/GHC.Types.SrcLoc.html#GenLocated" class="link">Source</a> <a href="#t:GenLocated" class="selflink">#</a></p><div class="doc"><p>We attach SrcSpans to lots of things, so let's have a datatype for it.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:L" class="def">L</a> l e</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:GenLocated">Instances</h4><details id="i:GenLocated" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:GenLocated:Data:1"></span> <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a>)</span> <a href="src/GHC.Hs.Instances.html#line-434" class="link">Source</a> <a href="#t:Data" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:GenLocated:Data:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Hs-Instances.html">GHC.Hs.Instances</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (d -&gt; b) -&gt; d -&gt; c b) -&gt; (<span class="keyword">forall</span> g. g -&gt; c g) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a> -&gt; c (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a>) <a href="../base/src/Data.Data.html#gfoldl" class="link">Source</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; c (b -&gt; r) -&gt; c r) -&gt; (<span class="keyword">forall</span> r. r -&gt; c r) -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> -&gt; c (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a>) <a href="../base/src/Data.Data.html#gunfold" class="link">Source</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a> -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> <a href="../base/src/Data.Data.html#toConstr" class="link">Source</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a> -&gt; <a href="../base/Data-Data.html#t:DataType" title="Data.Data">DataType</a> <a href="../base/src/Data.Data.html#dataTypeOf" class="link">Source</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (t d)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a>)) <a href="../base/src/Data.Data.html#dataCast1" class="link">Source</a> <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d e. (<a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d, <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> e) =&gt; c (t d e)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a>)) <a href="../base/src/Data.Data.html#dataCast2" class="link">Source</a> <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; b -&gt; b) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a> -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a> <a href="../base/src/Data.Data.html#gmapT" class="link">Source</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -&gt; r' -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQl" class="link">Source</a> <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: <span class="keyword">forall</span> r r'. (r' -&gt; r -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQr" class="link">Source</a> <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a> -&gt; [u] <a href="../base/src/Data.Data.html#gmapQ" class="link">Source</a> <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a> -&gt; u <a href="../base/src/Data.Data.html#gmapQi" class="link">Source</a> <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="GHC-Prelude.html#t:Monad" title="GHC.Prelude">Monad</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a> -&gt; m (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a>) <a href="../base/src/Data.Data.html#gmapM" class="link">Source</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a> -&gt; m (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a>) <a href="../base/src/Data.Data.html#gmapMp" class="link">Source</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a> -&gt; m (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcPs" title="GHC.Hs.Extension">GhcPs</a>) <a href="../base/src/Data.Data.html#gmapMo" class="link">Source</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:GenLocated:Data:2"></span> <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a>)</span> <a href="src/GHC.Hs.Instances.html#line-435" class="link">Source</a> <a href="#t:Data" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:GenLocated:Data:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Hs-Instances.html">GHC.Hs.Instances</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (d -&gt; b) -&gt; d -&gt; c b) -&gt; (<span class="keyword">forall</span> g. g -&gt; c g) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a> -&gt; c (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a>) <a href="../base/src/Data.Data.html#gfoldl" class="link">Source</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; c (b -&gt; r) -&gt; c r) -&gt; (<span class="keyword">forall</span> r. r -&gt; c r) -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> -&gt; c (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a>) <a href="../base/src/Data.Data.html#gunfold" class="link">Source</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a> -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> <a href="../base/src/Data.Data.html#toConstr" class="link">Source</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a> -&gt; <a href="../base/Data-Data.html#t:DataType" title="Data.Data">DataType</a> <a href="../base/src/Data.Data.html#dataTypeOf" class="link">Source</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (t d)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a>)) <a href="../base/src/Data.Data.html#dataCast1" class="link">Source</a> <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d e. (<a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d, <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> e) =&gt; c (t d e)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a>)) <a href="../base/src/Data.Data.html#dataCast2" class="link">Source</a> <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; b -&gt; b) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a> -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a> <a href="../base/src/Data.Data.html#gmapT" class="link">Source</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -&gt; r' -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQl" class="link">Source</a> <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: <span class="keyword">forall</span> r r'. (r' -&gt; r -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQr" class="link">Source</a> <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a> -&gt; [u] <a href="../base/src/Data.Data.html#gmapQ" class="link">Source</a> <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a> -&gt; u <a href="../base/src/Data.Data.html#gmapQi" class="link">Source</a> <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="GHC-Prelude.html#t:Monad" title="GHC.Prelude">Monad</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a> -&gt; m (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a>) <a href="../base/src/Data.Data.html#gmapM" class="link">Source</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a> -&gt; m (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a>) <a href="../base/src/Data.Data.html#gmapMp" class="link">Source</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a> -&gt; m (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcRn" title="GHC.Hs.Extension">GhcRn</a>) <a href="../base/src/Data.Data.html#gmapMo" class="link">Source</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:GenLocated:Data:3"></span> <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a>)</span> <a href="src/GHC.Hs.Instances.html#line-436" class="link">Source</a> <a href="#t:Data" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:GenLocated:Data:3"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Hs-Instances.html">GHC.Hs.Instances</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (d -&gt; b) -&gt; d -&gt; c b) -&gt; (<span class="keyword">forall</span> g. g -&gt; c g) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a> -&gt; c (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a>) <a href="../base/src/Data.Data.html#gfoldl" class="link">Source</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; c (b -&gt; r) -&gt; c r) -&gt; (<span class="keyword">forall</span> r. r -&gt; c r) -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> -&gt; c (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a>) <a href="../base/src/Data.Data.html#gunfold" class="link">Source</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a> -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> <a href="../base/src/Data.Data.html#toConstr" class="link">Source</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a> -&gt; <a href="../base/Data-Data.html#t:DataType" title="Data.Data">DataType</a> <a href="../base/src/Data.Data.html#dataTypeOf" class="link">Source</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (t d)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a>)) <a href="../base/src/Data.Data.html#dataCast1" class="link">Source</a> <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d e. (<a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d, <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> e) =&gt; c (t d e)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a>)) <a href="../base/src/Data.Data.html#dataCast2" class="link">Source</a> <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; b -&gt; b) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a> -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a> <a href="../base/src/Data.Data.html#gmapT" class="link">Source</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -&gt; r' -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQl" class="link">Source</a> <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: <span class="keyword">forall</span> r r'. (r' -&gt; r -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQr" class="link">Source</a> <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a> -&gt; [u] <a href="../base/src/Data.Data.html#gmapQ" class="link">Source</a> <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a> -&gt; u <a href="../base/src/Data.Data.html#gmapQi" class="link">Source</a> <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="GHC-Prelude.html#t:Monad" title="GHC.Prelude">Monad</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a> -&gt; m (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a>) <a href="../base/src/Data.Data.html#gmapM" class="link">Source</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a> -&gt; m (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a>) <a href="../base/src/Data.Data.html#gmapMp" class="link">Source</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a> -&gt; m (<a href="GHC-Hs-Type.html#t:LHsTypeArg" title="GHC.Hs.Type">LHsTypeArg</a> <a href="GHC-Hs-Extension.html#t:GhcTc" title="GHC.Hs.Extension">GhcTc</a>) <a href="../base/src/Data.Data.html#gmapMo" class="link">Source</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:GenLocated:Foldable:4"></span> <a href="GHC-Prelude.html#t:Foldable" title="GHC.Prelude">Foldable</a> (<a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l)</span> <a href="src/GHC.Types.SrcLoc.html#line-722" class="link">Source</a> <a href="#t:GenLocated" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:GenLocated:Foldable:4"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-SrcLoc.html">GHC.Types.SrcLoc</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fold">fold</a> :: <a href="GHC-Prelude.html#t:Monoid" title="GHC.Prelude">Monoid</a> m =&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l m -&gt; m <a href="../base/src/Data.Foldable.html#fold" class="link">Source</a> <a href="#v:fold" class="selflink">#</a></p><p class="src"><a href="#v:foldMap">foldMap</a> :: <a href="GHC-Prelude.html#t:Monoid" title="GHC.Prelude">Monoid</a> m =&gt; (a -&gt; m) -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l a -&gt; m <a href="../base/src/Data.Foldable.html#foldMap" class="link">Source</a> <a href="#v:foldMap" class="selflink">#</a></p><p class="src"><a href="#v:foldMap-39-">foldMap'</a> :: <a href="GHC-Prelude.html#t:Monoid" title="GHC.Prelude">Monoid</a> m =&gt; (a -&gt; m) -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l a -&gt; m <a href="../base/src/Data.Foldable.html#foldMap%27" class="link">Source</a> <a href="#v:foldMap-39-" class="selflink">#</a></p><p class="src"><a href="#v:foldr">foldr</a> :: (a -&gt; b -&gt; b) -&gt; b -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l a -&gt; b <a href="../base/src/Data.Foldable.html#foldr" class="link">Source</a> <a href="#v:foldr" class="selflink">#</a></p><p class="src"><a href="#v:foldr-39-">foldr'</a> :: (a -&gt; b -&gt; b) -&gt; b -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l a -&gt; b <a href="../base/src/Data.Foldable.html#foldr%27" class="link">Source</a> <a href="#v:foldr-39-" class="selflink">#</a></p><p class="src"><a href="#v:foldl">foldl</a> :: (b -&gt; a -&gt; b) -&gt; b -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l a -&gt; b <a href="../base/src/Data.Foldable.html#foldl" class="link">Source</a> <a href="#v:foldl" class="selflink">#</a></p><p class="src"><a href="#v:foldl-39-">foldl'</a> :: (b -&gt; a -&gt; b) -&gt; b -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l a -&gt; b <a href="../base/src/Data.Foldable.html#foldl%27" class="link">Source</a> <a href="#v:foldl-39-" class="selflink">#</a></p><p class="src"><a href="#v:foldr1">foldr1</a> :: (a -&gt; a -&gt; a) -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l a -&gt; a <a href="../base/src/Data.Foldable.html#foldr1" class="link">Source</a> <a href="#v:foldr1" class="selflink">#</a></p><p class="src"><a href="#v:foldl1">foldl1</a> :: (a -&gt; a -&gt; a) -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l a -&gt; a <a href="../base/src/Data.Foldable.html#foldl1" class="link">Source</a> <a href="#v:foldl1" class="selflink">#</a></p><p class="src"><a href="#v:toList">toList</a> :: <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l a -&gt; [a] <a href="../base/src/Data.Foldable.html#toList" class="link">Source</a> <a href="#v:toList" class="selflink">#</a></p><p class="src"><a href="#v:null">null</a> :: <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l a -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="../base/src/Data.Foldable.html#null" class="link">Source</a> <a href="#v:null" class="selflink">#</a></p><p class="src"><a href="#v:length">length</a> :: <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l a -&gt; <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> <a href="../base/src/Data.Foldable.html#length" class="link">Source</a> <a href="#v:length" class="selflink">#</a></p><p class="src"><a href="#v:elem">elem</a> :: <a href="GHC-Prelude.html#t:Eq" title="GHC.Prelude">Eq</a> a =&gt; a -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l a -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="../base/src/Data.Foldable.html#elem" class="link">Source</a> <a href="#v:elem" class="selflink">#</a></p><p class="src"><a href="#v:maximum">maximum</a> :: <a href="GHC-Prelude.html#t:Ord" title="GHC.Prelude">Ord</a> a =&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l a -&gt; a <a href="../base/src/Data.Foldable.html#maximum" class="link">Source</a> <a href="#v:maximum" class="selflink">#</a></p><p class="src"><a href="#v:minimum">minimum</a> :: <a href="GHC-Prelude.html#t:Ord" title="GHC.Prelude">Ord</a> a =&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l a -&gt; a <a href="../base/src/Data.Foldable.html#minimum" class="link">Source</a> <a href="#v:minimum" class="selflink">#</a></p><p class="src"><a href="#v:sum">sum</a> :: <a href="GHC-Prelude.html#t:Num" title="GHC.Prelude">Num</a> a =&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l a -&gt; a <a href="../base/src/Data.Foldable.html#sum" class="link">Source</a> <a href="#v:sum" class="selflink">#</a></p><p class="src"><a href="#v:product">product</a> :: <a href="GHC-Prelude.html#t:Num" title="GHC.Prelude">Num</a> a =&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l a -&gt; a <a href="../base/src/Data.Foldable.html#product" class="link">Source</a> <a href="#v:product" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:GenLocated:Traversable:5"></span> <a href="GHC-Prelude.html#t:Traversable" title="GHC.Prelude">Traversable</a> (<a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l)</span> <a href="src/GHC.Types.SrcLoc.html#line-722" class="link">Source</a> <a href="#t:GenLocated" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:GenLocated:Traversable:5"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-SrcLoc.html">GHC.Types.SrcLoc</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:traverse">traverse</a> :: <a href="GHC-Prelude.html#t:Applicative" title="GHC.Prelude">Applicative</a> f =&gt; (a -&gt; f b) -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l a -&gt; f (<a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l b) <a href="../base/src/Data.Traversable.html#traverse" class="link">Source</a> <a href="#v:traverse" class="selflink">#</a></p><p class="src"><a href="#v:sequenceA">sequenceA</a> :: <a href="GHC-Prelude.html#t:Applicative" title="GHC.Prelude">Applicative</a> f =&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l (f a) -&gt; f (<a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l a) <a href="../base/src/Data.Traversable.html#sequenceA" class="link">Source</a> <a href="#v:sequenceA" class="selflink">#</a></p><p class="src"><a href="#v:mapM">mapM</a> :: <a href="GHC-Prelude.html#t:Monad" title="GHC.Prelude">Monad</a> m =&gt; (a -&gt; m b) -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l a -&gt; m (<a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l b) <a href="../base/src/Data.Traversable.html#mapM" class="link">Source</a> <a href="#v:mapM" class="selflink">#</a></p><p class="src"><a href="#v:sequence">sequence</a> :: <a href="GHC-Prelude.html#t:Monad" title="GHC.Prelude">Monad</a> m =&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l (m a) -&gt; m (<a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l a) <a href="../base/src/Data.Traversable.html#sequence" class="link">Source</a> <a href="#v:sequence" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:GenLocated:Functor:6"></span> <a href="GHC-Prelude.html#t:Functor" title="GHC.Prelude">Functor</a> (<a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l)</span> <a href="src/GHC.Types.SrcLoc.html#line-722" class="link">Source</a> <a href="#t:GenLocated" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:GenLocated:Functor:6"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-SrcLoc.html">GHC.Types.SrcLoc</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -&gt; b) -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l a -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l b <a href="../base/src/GHC.Base.html#fmap" class="link">Source</a> <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(&lt;$)</a> :: a -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l b -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l a <a href="../base/src/GHC.Base.html#%3C%24" class="link">Source</a> <a href="#v:-60--36-" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:GenLocated:NamedThing:7"></span> <a href="GHC.html#t:NamedThing" title="GHC">NamedThing</a> e =&gt; <a href="GHC.html#t:NamedThing" title="GHC">NamedThing</a> (<a href="GHC.html#t:Located" title="GHC">Located</a> e)</span> <a href="src/GHC.Types.Name.html#line-708" class="link">Source</a> <a href="#t:NamedThing" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:GenLocated:NamedThing:7"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-Name.html">GHC.Types.Name</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getOccName">getOccName</a> :: <a href="GHC.html#t:Located" title="GHC">Located</a> e -&gt; <a href="GHC-Types-Name-Occurrence.html#t:OccName" title="GHC.Types.Name.Occurrence">OccName</a> <a href="src/GHC.Types.Name.html#getOccName" class="link">Source</a> <a href="#v:getOccName" class="selflink">#</a></p><p class="src"><a href="#v:getName">getName</a> :: <a href="GHC.html#t:Located" title="GHC">Located</a> e -&gt; <a href="GHC.html#t:Name" title="GHC">Name</a> <a href="src/GHC.Types.Name.html#getName" class="link">Source</a> <a href="#v:getName" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:GenLocated:Binary:8"></span> <a href="GHC-Utils-Binary.html#t:Binary" title="GHC.Utils.Binary">Binary</a> a =&gt; <a href="GHC-Utils-Binary.html#t:Binary" title="GHC.Utils.Binary">Binary</a> (<a href="GHC.html#t:Located" title="GHC">Located</a> a)</span> <a href="src/GHC.Utils.Binary.html#line-1420" class="link">Source</a> <a href="#t:Binary" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:GenLocated:Binary:8"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Utils-Binary.html">GHC.Utils.Binary</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put_">put_</a> :: <a href="GHC-Utils-Binary.html#t:BinHandle" title="GHC.Utils.Binary">BinHandle</a> -&gt; <a href="GHC.html#t:Located" title="GHC">Located</a> a -&gt; <a href="GHC-Prelude.html#t:IO" title="GHC.Prelude">IO</a> () <a href="src/GHC.Utils.Binary.html#put_" class="link">Source</a> <a href="#v:put_" class="selflink">#</a></p><p class="src"><a href="#v:put">put</a> :: <a href="GHC-Utils-Binary.html#t:BinHandle" title="GHC.Utils.Binary">BinHandle</a> -&gt; <a href="GHC.html#t:Located" title="GHC">Located</a> a -&gt; <a href="GHC-Prelude.html#t:IO" title="GHC.Prelude">IO</a> (<a href="GHC-Utils-Binary.html#t:Bin" title="GHC.Utils.Binary">Bin</a> (<a href="GHC.html#t:Located" title="GHC">Located</a> a)) <a href="src/GHC.Utils.Binary.html#put" class="link">Source</a> <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:get">get</a> :: <a href="GHC-Utils-Binary.html#t:BinHandle" title="GHC.Utils.Binary">BinHandle</a> -&gt; <a href="GHC-Prelude.html#t:IO" title="GHC.Prelude">IO</a> (<a href="GHC.html#t:Located" title="GHC">Located</a> a) <a href="src/GHC.Utils.Binary.html#get" class="link">Source</a> <a href="#v:get" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:GenLocated:Data:9"></span> (<a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> l, <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> e) =&gt; <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> (<a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e)</span> <a href="src/GHC.Types.SrcLoc.html#line-722" class="link">Source</a> <a href="#t:GenLocated" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:GenLocated:Data:9"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-SrcLoc.html">GHC.Types.SrcLoc</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (d -&gt; b) -&gt; d -&gt; c b) -&gt; (<span class="keyword">forall</span> g. g -&gt; c g) -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; c (<a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e) <a href="../base/src/Data.Data.html#gfoldl" class="link">Source</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; c (b -&gt; r) -&gt; c r) -&gt; (<span class="keyword">forall</span> r. r -&gt; c r) -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> -&gt; c (<a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e) <a href="../base/src/Data.Data.html#gunfold" class="link">Source</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> <a href="../base/src/Data.Data.html#toConstr" class="link">Source</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; <a href="../base/Data-Data.html#t:DataType" title="Data.Data">DataType</a> <a href="../base/src/Data.Data.html#dataTypeOf" class="link">Source</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (t d)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c (<a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e)) <a href="../base/src/Data.Data.html#dataCast1" class="link">Source</a> <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d e0. (<a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d, <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> e0) =&gt; c (t d e0)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c (<a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e)) <a href="../base/src/Data.Data.html#dataCast2" class="link">Source</a> <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; b -&gt; b) -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e <a href="../base/src/Data.Data.html#gmapT" class="link">Source</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -&gt; r' -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; r <a href="../base/src/Data.Data.html#gmapQl" class="link">Source</a> <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: <span class="keyword">forall</span> r r'. (r' -&gt; r -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; r <a href="../base/src/Data.Data.html#gmapQr" class="link">Source</a> <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; [u] <a href="../base/src/Data.Data.html#gmapQ" class="link">Source</a> <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; u <a href="../base/src/Data.Data.html#gmapQi" class="link">Source</a> <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="GHC-Prelude.html#t:Monad" title="GHC.Prelude">Monad</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; m (<a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e) <a href="../base/src/Data.Data.html#gmapM" class="link">Source</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; m (<a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e) <a href="../base/src/Data.Data.html#gmapMp" class="link">Source</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; m (<a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e) <a href="../base/src/Data.Data.html#gmapMo" class="link">Source</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:GenLocated:Outputable:10"></span> (<a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> l, <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> e) =&gt; <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> (<a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e)</span> <a href="src/GHC.Types.SrcLoc.html#line-772" class="link">Source</a> <a href="#t:GenLocated" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:GenLocated:Outputable:10"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-SrcLoc.html">GHC.Types.SrcLoc</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:GenLocated:Eq:11"></span> (<a href="GHC-Prelude.html#t:Eq" title="GHC.Prelude">Eq</a> l, <a href="GHC-Prelude.html#t:Eq" title="GHC.Prelude">Eq</a> e) =&gt; <a href="GHC-Prelude.html#t:Eq" title="GHC.Prelude">Eq</a> (<a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e)</span> <a href="src/GHC.Types.SrcLoc.html#line-722" class="link">Source</a> <a href="#t:GenLocated" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:GenLocated:Eq:11"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-SrcLoc.html">GHC.Types.SrcLoc</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:GenLocated:Ord:12"></span> (<a href="GHC-Prelude.html#t:Ord" title="GHC.Prelude">Ord</a> l, <a href="GHC-Prelude.html#t:Ord" title="GHC.Prelude">Ord</a> e) =&gt; <a href="GHC-Prelude.html#t:Ord" title="GHC.Prelude">Ord</a> (<a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e)</span> <a href="src/GHC.Types.SrcLoc.html#line-722" class="link">Source</a> <a href="#t:GenLocated" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:GenLocated:Ord:12"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Types-SrcLoc.html">GHC.Types.SrcLoc</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; <a href="GHC-Prelude.html#t:Ordering" title="GHC.Prelude">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(&lt;)</a> :: <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(&lt;=)</a> :: <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(&gt;)</a> :: <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(&gt;=)</a> :: <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e <a href="#v:min" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:Located" class="def">Located</a> = <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> <a href="src/GHC.Types.SrcLoc.html#Located" class="link">Source</a> <a href="#t:Located" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:RealLocated" class="def">RealLocated</a> = <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> <a href="src/GHC.Types.SrcLoc.html#RealLocated" class="link">Source</a> <a href="#t:RealLocated" class="selflink">#</a></p></div><a href="#g:38" id="g:38"><h3>Constructing Located</h3></a><div class="top"><p class="src"><a id="v:noLoc" class="def">noLoc</a> :: e -&gt; <a href="GHC.html#t:Located" title="GHC">Located</a> e <a href="src/GHC.Types.SrcLoc.html#noLoc" class="link">Source</a> <a href="#v:noLoc" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:mkGeneralLocated" class="def">mkGeneralLocated</a> :: <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; e -&gt; <a href="GHC.html#t:Located" title="GHC">Located</a> e <a href="src/GHC.Types.SrcLoc.html#mkGeneralLocated" class="link">Source</a> <a href="#v:mkGeneralLocated" class="selflink">#</a></p></div><a href="#g:39" id="g:39"><h3>Deconstructing Located</h3></a><div class="top"><p class="src"><a id="v:getLoc" class="def">getLoc</a> :: <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; l <a href="src/GHC.Types.SrcLoc.html#getLoc" class="link">Source</a> <a href="#v:getLoc" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:unLoc" class="def">unLoc</a> :: <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l e -&gt; e <a href="src/GHC.Types.SrcLoc.html#unLoc" class="link">Source</a> <a href="#v:unLoc" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getRealSrcSpan" class="def">getRealSrcSpan</a> :: <a href="GHC.html#t:RealLocated" title="GHC">RealLocated</a> a -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> <a href="src/GHC.Types.SrcLoc.html#getRealSrcSpan" class="link">Source</a> <a href="#v:getRealSrcSpan" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:unRealSrcSpan" class="def">unRealSrcSpan</a> :: <a href="GHC.html#t:RealLocated" title="GHC">RealLocated</a> a -&gt; a <a href="src/GHC.Types.SrcLoc.html#unRealSrcSpan" class="link">Source</a> <a href="#v:unRealSrcSpan" class="selflink">#</a></p></div><a href="#g:40" id="g:40"><h3>Combining and comparing Located values</h3></a><div class="top"><p class="src"><a id="v:eqLocated" class="def">eqLocated</a> :: <a href="GHC-Prelude.html#t:Eq" title="GHC.Prelude">Eq</a> a =&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l a -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l a -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Types.SrcLoc.html#eqLocated" class="link">Source</a> <a href="#v:eqLocated" class="selflink">#</a></p><div class="doc"><p>Tests whether the two located things are equal</p></div></div><div class="top"><p class="src"><a id="v:cmpLocated" class="def">cmpLocated</a> :: <a href="GHC-Prelude.html#t:Ord" title="GHC.Prelude">Ord</a> a =&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l a -&gt; <a href="GHC.html#t:GenLocated" title="GHC">GenLocated</a> l a -&gt; <a href="GHC-Prelude.html#t:Ordering" title="GHC.Prelude">Ordering</a> <a href="src/GHC.Types.SrcLoc.html#cmpLocated" class="link">Source</a> <a href="#v:cmpLocated" class="selflink">#</a></p><div class="doc"><p>Tests the ordering of the two located things</p></div></div><div class="top"><p class="src"><a id="v:combineLocs" class="def">combineLocs</a> :: <a href="GHC.html#t:Located" title="GHC">Located</a> a -&gt; <a href="GHC.html#t:Located" title="GHC">Located</a> b -&gt; <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> <a href="src/GHC.Types.SrcLoc.html#combineLocs" class="link">Source</a> <a href="#v:combineLocs" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:addCLoc" class="def">addCLoc</a> :: <a href="GHC.html#t:Located" title="GHC">Located</a> a -&gt; <a href="GHC.html#t:Located" title="GHC">Located</a> b -&gt; c -&gt; <a href="GHC.html#t:Located" title="GHC">Located</a> c <a href="src/GHC.Types.SrcLoc.html#addCLoc" class="link">Source</a> <a href="#v:addCLoc" class="selflink">#</a></p><div class="doc"><p>Combine locations from two <code><a href="GHC.html#t:Located" title="GHC">Located</a></code> things and add them to a third thing</p></div></div><div class="top"><p class="src"><a id="v:leftmost_smallest" class="def">leftmost_smallest</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:Ordering" title="GHC.Prelude">Ordering</a> <a href="src/GHC.Types.SrcLoc.html#leftmost_smallest" class="link">Source</a> <a href="#v:leftmost_smallest" class="selflink">#</a></p><div class="doc"><p>Strategies for ordering <code><a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></code>s</p></div></div><div class="top"><p class="src"><a id="v:leftmost_largest" class="def">leftmost_largest</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:Ordering" title="GHC.Prelude">Ordering</a> <a href="src/GHC.Types.SrcLoc.html#leftmost_largest" class="link">Source</a> <a href="#v:leftmost_largest" class="selflink">#</a></p><div class="doc"><p>Strategies for ordering <code><a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></code>s</p></div></div><div class="top"><p class="src"><a id="v:rightmost_smallest" class="def">rightmost_smallest</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; <a href="GHC-Prelude.html#t:Ordering" title="GHC.Prelude">Ordering</a> <a href="src/GHC.Types.SrcLoc.html#rightmost_smallest" class="link">Source</a> <a href="#v:rightmost_smallest" class="selflink">#</a></p><div class="doc"><p>Strategies for ordering <code><a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></code>s</p></div></div><div class="top"><p class="src"><a id="v:spans" class="def">spans</a> :: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a> -&gt; (<a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a>, <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a>) -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Types.SrcLoc.html#spans" class="link">Source</a> <a href="#v:spans" class="selflink">#</a></p><div class="doc"><p>Determines whether a span encloses a given line and column index</p></div></div><div class="top"><p class="src"><a id="v:isSubspanOf" class="def">isSubspanOf</a> <a href="src/GHC.Types.SrcLoc.html#isSubspanOf" class="link">Source</a> <a href="#v:isSubspanOf" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></td><td class="doc"><p>The span that may be enclosed by the other</p></td></tr><tr><td class="src">-&gt; <a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></td><td class="doc"><p>The span it may be enclosed by</p></td></tr><tr><td class="src">-&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="doc"><p>Determines whether a span is enclosed by another one</p></div></div><a href="#g:41" id="g:41"><h1>Exceptions</h1></a><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:GhcException" class="def">GhcException</a> <a href="src/GHC.Utils.Panic.html#GhcException" class="link">Source</a> <a href="#t:GhcException" class="selflink">#</a></p><div class="doc"><p>GHC's own exception type
   error messages all take the form:</p><pre>     &lt;location&gt;: &lt;error&gt;
 </pre><p>If the location is on the command line, or in GHC itself, then
   &lt;location&gt;=&quot;ghc&quot;.  All of the error types below correspond to
   a &lt;location&gt; of &quot;ghc&quot;, except for ProgramError (where the string is
  assumed to contain a location already, so we don't print one).</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Signal" class="def">Signal</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></td><td class="doc"><p>Some other fatal signal (SIGHUP,SIGTERM)</p></td></tr><tr><td class="src"><a id="v:UsageError" class="def">UsageError</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></td><td class="doc"><p>Prints the short usage msg after the error</p></td></tr><tr><td class="src"><a id="v:CmdLineError" class="def">CmdLineError</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></td><td class="doc"><p>A problem with the command line arguments, but don't print usage.</p></td></tr><tr><td class="src"><a id="v:Panic" class="def">Panic</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></td><td class="doc"><p>The <code>impossible</code> happened.</p></td></tr><tr><td class="src"><a id="v:PprPanic" class="def">PprPanic</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Sorry" class="def">Sorry</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></td><td class="doc"><p>The user tickled something that's known not to work yet,
   but we're not counting it as a bug.</p></td></tr><tr><td class="src"><a id="v:PprSorry" class="def">PprSorry</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:InstallationError" class="def">InstallationError</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></td><td class="doc"><p>An installation problem.</p></td></tr><tr><td class="src"><a id="v:ProgramError" class="def">ProgramError</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></td><td class="doc"><p>An error in the user's code, probably.</p></td></tr><tr><td class="src"><a id="v:PprProgramError" class="def">PprProgramError</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:GhcException">Instances</h4><details id="i:GhcException" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:GhcException:Exception:1"></span> <a href="GHC-Utils-Panic.html#t:Exception" title="GHC.Utils.Panic">Exception</a> <a href="GHC.html#t:GhcException" title="GHC">GhcException</a></span> <a href="src/GHC.Utils.Panic.html#line-93" class="link">Source</a> <a href="#t:GhcException" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:GhcException:Exception:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Utils-Panic.html">GHC.Utils.Panic</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:toException">toException</a> :: <a href="GHC.html#t:GhcException" title="GHC">GhcException</a> -&gt; <a href="../base/Control-Exception.html#t:SomeException" title="Control.Exception">SomeException</a> <a href="../base/src/GHC.Exception.Type.html#toException" class="link">Source</a> <a href="#v:toException" class="selflink">#</a></p><p class="src"><a href="#v:fromException">fromException</a> :: <a href="../base/Control-Exception.html#t:SomeException" title="Control.Exception">SomeException</a> -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:GhcException" title="GHC">GhcException</a> <a href="../base/src/GHC.Exception.Type.html#fromException" class="link">Source</a> <a href="#v:fromException" class="selflink">#</a></p><p class="src"><a href="#v:displayException">displayException</a> :: <a href="GHC.html#t:GhcException" title="GHC">GhcException</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> <a href="../base/src/GHC.Exception.Type.html#displayException" class="link">Source</a> <a href="#v:displayException" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:GhcException:Show:2"></span> <a href="GHC-Prelude.html#t:Show" title="GHC.Prelude">Show</a> <a href="GHC.html#t:GhcException" title="GHC">GhcException</a></span> <a href="src/GHC.Utils.Panic.html#line-107" class="link">Source</a> <a href="#t:GhcException" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:GhcException:Show:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Utils-Panic.html">GHC.Utils.Panic</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; <a href="GHC.html#t:GhcException" title="GHC">GhcException</a> -&gt; <a href="GHC-Prelude.html#t:ShowS" title="GHC.Prelude">ShowS</a> <a href="../base/src/GHC.Show.html#showsPrec" class="link">Source</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="GHC.html#t:GhcException" title="GHC">GhcException</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> <a href="../base/src/GHC.Show.html#show" class="link">Source</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="GHC.html#t:GhcException" title="GHC">GhcException</a>] -&gt; <a href="GHC-Prelude.html#t:ShowS" title="GHC.Prelude">ShowS</a> <a href="../base/src/GHC.Show.html#showList" class="link">Source</a> <a href="#v:showList" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><a id="v:showGhcException" class="def">showGhcException</a> :: <a href="GHC.html#t:GhcException" title="GHC">GhcException</a> -&gt; <a href="GHC-Prelude.html#t:ShowS" title="GHC.Prelude">ShowS</a> <a href="src/GHC.Utils.Panic.html#showGhcException" class="link">Source</a> <a href="#v:showGhcException" class="selflink">#</a></p><div class="doc"><p>Append a description of the given exception to this string.</p><p>Note that this uses <code><a href="GHC-Driver-Session.html#v:unsafeGlobalDynFlags" title="GHC.Driver.Session">unsafeGlobalDynFlags</a></code>, which may have some
 uninitialized fields if invoked before <code><a href="GHC.html#v:initGhcMonad" title="GHC">initGhcMonad</a></code> has been called.
 If the error message to be printed includes a pretty-printer document
 which forces one of these fields this call may bottom.</p></div></div><a href="#g:42" id="g:42"><h1>Token stream manipulations</h1></a><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Token" class="def">Token</a> <a href="src/GHC.Parser.Lexer.html#Token" class="link">Source</a> <a href="#t:Token" class="selflink">#</a></p><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:Token">Instances</h4><details id="i:Token" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Token:Show:1"></span> <a href="GHC-Prelude.html#t:Show" title="GHC.Prelude">Show</a> <a href="GHC.html#t:Token" title="GHC">Token</a></span> <a href="src/GHC.Parser.Lexer.html#line-872" class="link">Source</a> <a href="#t:Token" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:Token:Show:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Parser-Lexer.html">GHC.Parser.Lexer</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; <a href="GHC.html#t:Token" title="GHC">Token</a> -&gt; <a href="GHC-Prelude.html#t:ShowS" title="GHC.Prelude">ShowS</a> <a href="../base/src/GHC.Show.html#showsPrec" class="link">Source</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="GHC.html#t:Token" title="GHC">Token</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> <a href="../base/src/GHC.Show.html#show" class="link">Source</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="GHC.html#t:Token" title="GHC">Token</a>] -&gt; <a href="GHC-Prelude.html#t:ShowS" title="GHC.Prelude">ShowS</a> <a href="../base/src/GHC.Show.html#showList" class="link">Source</a> <a href="#v:showList" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Token:Outputable:2"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC.html#t:Token" title="GHC">Token</a></span> <a href="src/GHC.Parser.Lexer.html#line-874" class="link">Source</a> <a href="#t:Token" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:Token:Outputable:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Parser-Lexer.html">GHC.Parser.Lexer</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC.html#t:Token" title="GHC">Token</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC.html#t:Token" title="GHC">Token</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><a id="v:getTokenStream" class="def">getTokenStream</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:Module" title="GHC">Module</a> -&gt; m [<a href="GHC.html#t:Located" title="GHC">Located</a> <a href="GHC.html#t:Token" title="GHC">Token</a>] <a href="src/GHC.html#getTokenStream" class="link">Source</a> <a href="#v:getTokenStream" class="selflink">#</a></p><div class="doc"><p>Return module source as token stream, including comments.</p><p>The module must be in the module graph and its source must be available.
 Throws a <code><a href="GHC-Driver-Types.html#t:SourceError" title="GHC.Driver.Types">SourceError</a></code> on parse error.</p></div></div><div class="top"><p class="src"><a id="v:getRichTokenStream" class="def">getRichTokenStream</a> :: <a href="GHC.html#t:GhcMonad" title="GHC">GhcMonad</a> m =&gt; <a href="GHC.html#t:Module" title="GHC">Module</a> -&gt; m [(<a href="GHC.html#t:Located" title="GHC">Located</a> <a href="GHC.html#t:Token" title="GHC">Token</a>, <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>)] <a href="src/GHC.html#getRichTokenStream" class="link">Source</a> <a href="#v:getRichTokenStream" class="selflink">#</a></p><div class="doc"><p>Give even more information on the source than <code><a href="GHC.html#v:getTokenStream" title="GHC">getTokenStream</a></code>
 This function allows reconstructing the source completely with
 <code><a href="GHC.html#v:showRichTokenStream" title="GHC">showRichTokenStream</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:showRichTokenStream" class="def">showRichTokenStream</a> :: [(<a href="GHC.html#t:Located" title="GHC">Located</a> <a href="GHC.html#t:Token" title="GHC">Token</a>, <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>)] -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> <a href="src/GHC.html#showRichTokenStream" class="link">Source</a> <a href="#v:showRichTokenStream" class="selflink">#</a></p><div class="doc"><p>Take a rich token stream such as produced from <code><a href="GHC.html#v:getRichTokenStream" title="GHC">getRichTokenStream</a></code> and
 return source code almost identical to the original code (except for
 insignificant whitespace.)</p></div></div><div class="top"><p class="src"><a id="v:addSourceToTokens" class="def">addSourceToTokens</a> :: <a href="GHC.html#t:RealSrcLoc" title="GHC">RealSrcLoc</a> -&gt; <a href="GHC-Data-StringBuffer.html#t:StringBuffer" title="GHC.Data.StringBuffer">StringBuffer</a> -&gt; [<a href="GHC.html#t:Located" title="GHC">Located</a> <a href="GHC.html#t:Token" title="GHC">Token</a>] -&gt; [(<a href="GHC.html#t:Located" title="GHC">Located</a> <a href="GHC.html#t:Token" title="GHC">Token</a>, <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a>)] <a href="src/GHC.html#addSourceToTokens" class="link">Source</a> <a href="#v:addSourceToTokens" class="selflink">#</a></p><div class="doc"><p>Given a source location and a StringBuffer corresponding to this
 location, return a rich token stream with the source associated to the
 tokens.</p></div></div><a href="#g:43" id="g:43"><h1>Pure interface to the parser</h1></a><div class="top"><p class="src"><a id="v:parser" class="def">parser</a> <a href="src/GHC.html#parser" class="link">Source</a> <a href="#v:parser" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></td><td class="doc"><p>Haskell module source text (full Unicode is supported)</p></td></tr><tr><td class="src">-&gt; <a href="GHC.html#t:DynFlags" title="GHC">DynFlags</a></td><td class="doc"><p>the flags</p></td></tr><tr><td class="src">-&gt; <a href="GHC-Prelude.html#t:FilePath" title="GHC.Prelude">FilePath</a></td><td class="doc"><p>the filename (for source locations)</p></td></tr><tr><td class="src">-&gt; (<a href="GHC-Utils-Error.html#t:WarningMessages" title="GHC.Utils.Error">WarningMessages</a>, <a href="GHC-Prelude.html#t:Either" title="GHC.Prelude">Either</a> <a href="GHC-Utils-Error.html#t:ErrorMessages" title="GHC.Utils.Error">ErrorMessages</a> (<a href="GHC.html#t:Located" title="GHC">Located</a> <a href="GHC-Hs.html#t:HsModule" title="GHC.Hs">HsModule</a>))</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="doc"><p>A pure interface to the module parser.</p></div></div><a href="#g:44" id="g:44"><h1>API Annotations</h1></a><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ApiAnns" class="def">ApiAnns</a> <a href="src/GHC.Parser.Annotation.html#ApiAnns" class="link">Source</a> <a href="#t:ApiAnns" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ApiAnns" class="def">ApiAnns</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:apiAnnItems" class="def">apiAnnItems</a> :: <a href="../containers/Data-Map-Strict.html#t:Map" title="Data.Map.Strict">Map</a> <a href="GHC.html#t:ApiAnnKey" title="GHC">ApiAnnKey</a> [<a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a>]</dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:apiAnnEofPos" class="def">apiAnnEofPos</a> :: <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:apiAnnComments" class="def">apiAnnComments</a> :: <a href="../containers/Data-Map-Strict.html#t:Map" title="Data.Map.Strict">Map</a> <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> [<a href="GHC.html#t:RealLocated" title="GHC">RealLocated</a> <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a>]</dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:apiAnnRogueComments" class="def">apiAnnRogueComments</a> :: [<a href="GHC.html#t:RealLocated" title="GHC">RealLocated</a> <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a>]</dfn><div class="doc empty">&nbsp;</div></li></ul></div></td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:AnnKeywordId" class="def">AnnKeywordId</a> <a href="src/GHC.Parser.Annotation.html#AnnKeywordId" class="link">Source</a> <a href="#t:AnnKeywordId" class="selflink">#</a></p><div class="doc"><p>API Annotations exist so that tools can perform source to source
 conversions of Haskell code. They are used to keep track of the
 various syntactic keywords that are not captured in the existing
 AST.</p><p>The annotations, together with original source comments are made
 available in the <code><code>pm_annotations</code></code> field of <code><code><a href="GHC.html#v:ParsedModule" title="GHC">ParsedModule</a></code></code>.
 Comments are only retained if <code><code>Opt_KeepRawTokenStream</code></code> is set in
 <code><code><a href="GHC-Driver-Session.html#v:DynFlags" title="GHC.Driver.Session">DynFlags</a></code></code> before parsing.</p><p>The wiki page describing this feature is
 <a href="https://gitlab.haskell.org/ghc/ghc/wikis/api-annotations">https://gitlab.haskell.org/ghc/ghc/wikis/api-annotations</a></p><p>Note: in general the names of these are taken from the
 corresponding token, unless otherwise noted
 See note [Api annotations] above for details of the usage</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:AnnAnyclass" class="def">AnnAnyclass</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnAs" class="def">AnnAs</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnAt" class="def">AnnAt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnBang" class="def">AnnBang</a></td><td class="doc"><p><code>!</code></p></td></tr><tr><td class="src"><a id="v:AnnBackquote" class="def">AnnBackquote</a></td><td class="doc"><p>'`'</p></td></tr><tr><td class="src"><a id="v:AnnBy" class="def">AnnBy</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnCase" class="def">AnnCase</a></td><td class="doc"><p>case or lambda case</p></td></tr><tr><td class="src"><a id="v:AnnClass" class="def">AnnClass</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnClose" class="def">AnnClose</a></td><td class="doc"><p>'#)' or '#-}'  etc</p></td></tr><tr><td class="src"><a id="v:AnnCloseB" class="def">AnnCloseB</a></td><td class="doc"><p>'|)'</p></td></tr><tr><td class="src"><a id="v:AnnCloseBU" class="def">AnnCloseBU</a></td><td class="doc"><p>'|)', unicode variant</p></td></tr><tr><td class="src"><a id="v:AnnCloseC" class="def">AnnCloseC</a></td><td class="doc"><p>'}'</p></td></tr><tr><td class="src"><a id="v:AnnCloseQ" class="def">AnnCloseQ</a></td><td class="doc"><p>'|]'</p></td></tr><tr><td class="src"><a id="v:AnnCloseQU" class="def">AnnCloseQU</a></td><td class="doc"><p>'|]', unicode variant</p></td></tr><tr><td class="src"><a id="v:AnnCloseP" class="def">AnnCloseP</a></td><td class="doc"><p>')'</p></td></tr><tr><td class="src"><a id="v:AnnCloseS" class="def">AnnCloseS</a></td><td class="doc"><p>']'</p></td></tr><tr><td class="src"><a id="v:AnnColon" class="def">AnnColon</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnComma" class="def">AnnComma</a></td><td class="doc"><p>as a list separator</p></td></tr><tr><td class="src"><a id="v:AnnCommaTuple" class="def">AnnCommaTuple</a></td><td class="doc"><p>in a RdrName for a tuple</p></td></tr><tr><td class="src"><a id="v:AnnDarrow" class="def">AnnDarrow</a></td><td class="doc"><p>'=&gt;'</p></td></tr><tr><td class="src"><a id="v:AnnDarrowU" class="def">AnnDarrowU</a></td><td class="doc"><p>'=&gt;', unicode variant</p></td></tr><tr><td class="src"><a id="v:AnnData" class="def">AnnData</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnDcolon" class="def">AnnDcolon</a></td><td class="doc"><p>'::'</p></td></tr><tr><td class="src"><a id="v:AnnDcolonU" class="def">AnnDcolonU</a></td><td class="doc"><p>'::', unicode variant</p></td></tr><tr><td class="src"><a id="v:AnnDefault" class="def">AnnDefault</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnDeriving" class="def">AnnDeriving</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnDo" class="def">AnnDo</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnDot" class="def">AnnDot</a></td><td class="doc"><p><code><a href="GHC-Prelude.html#v:." title="GHC.Prelude">.</a></code></p></td></tr><tr><td class="src"><a id="v:AnnDotdot" class="def">AnnDotdot</a></td><td class="doc"><p>'..'</p></td></tr><tr><td class="src"><a id="v:AnnElse" class="def">AnnElse</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnEqual" class="def">AnnEqual</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnExport" class="def">AnnExport</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnFamily" class="def">AnnFamily</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnForall" class="def">AnnForall</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnForallU" class="def">AnnForallU</a></td><td class="doc"><p>Unicode variant</p></td></tr><tr><td class="src"><a id="v:AnnForeign" class="def">AnnForeign</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnFunId" class="def">AnnFunId</a></td><td class="doc"><p>for function name in matches where there are
 multiple equations for the function.</p></td></tr><tr><td class="src"><a id="v:AnnGroup" class="def">AnnGroup</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnHeader" class="def">AnnHeader</a></td><td class="doc"><p>for CType</p></td></tr><tr><td class="src"><a id="v:AnnHiding" class="def">AnnHiding</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnIf" class="def">AnnIf</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnImport" class="def">AnnImport</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnIn" class="def">AnnIn</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnInfix" class="def">AnnInfix</a></td><td class="doc"><p>'infix' or 'infixl' or 'infixr'</p></td></tr><tr><td class="src"><a id="v:AnnInstance" class="def">AnnInstance</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnLam" class="def">AnnLam</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnLarrow" class="def">AnnLarrow</a></td><td class="doc"><p>'&lt;-'</p></td></tr><tr><td class="src"><a id="v:AnnLarrowU" class="def">AnnLarrowU</a></td><td class="doc"><p>'&lt;-', unicode variant</p></td></tr><tr><td class="src"><a id="v:AnnLet" class="def">AnnLet</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnLollyU" class="def">AnnLollyU</a></td><td class="doc"><p>The <code>&#8888;</code> unicode arrow</p></td></tr><tr><td class="src"><a id="v:AnnMdo" class="def">AnnMdo</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnMinus" class="def">AnnMinus</a></td><td class="doc"><p><code><a href="GHC-Prelude.html#v:-45-" title="GHC.Prelude">-</a></code></p></td></tr><tr><td class="src"><a id="v:AnnModule" class="def">AnnModule</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnPercentOne" class="def">AnnPercentOne</a></td><td class="doc"><p>'%1' -- for HsLinearArrow</p></td></tr><tr><td class="src"><a id="v:AnnNewtype" class="def">AnnNewtype</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnName" class="def">AnnName</a></td><td class="doc"><p>where a name loses its location in the AST, this carries it</p></td></tr><tr><td class="src"><a id="v:AnnOf" class="def">AnnOf</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnOpen" class="def">AnnOpen</a></td><td class="doc"><p>'(#' or '{-# LANGUAGE' etc</p></td></tr><tr><td class="src"><a id="v:AnnOpenB" class="def">AnnOpenB</a></td><td class="doc"><p>'(|'</p></td></tr><tr><td class="src"><a id="v:AnnOpenBU" class="def">AnnOpenBU</a></td><td class="doc"><p>'(|', unicode variant</p></td></tr><tr><td class="src"><a id="v:AnnOpenC" class="def">AnnOpenC</a></td><td class="doc"><p>'{'</p></td></tr><tr><td class="src"><a id="v:AnnOpenE" class="def">AnnOpenE</a></td><td class="doc"><p>'[e|' or '[e||'</p></td></tr><tr><td class="src"><a id="v:AnnOpenEQ" class="def">AnnOpenEQ</a></td><td class="doc"><p>'[|'</p></td></tr><tr><td class="src"><a id="v:AnnOpenEQU" class="def">AnnOpenEQU</a></td><td class="doc"><p>'[|', unicode variant</p></td></tr><tr><td class="src"><a id="v:AnnOpenP" class="def">AnnOpenP</a></td><td class="doc"><p>'('</p></td></tr><tr><td class="src"><a id="v:AnnOpenS" class="def">AnnOpenS</a></td><td class="doc"><p>'['</p></td></tr><tr><td class="src"><a id="v:AnnDollar" class="def">AnnDollar</a></td><td class="doc"><p>prefix <code><a href="GHC-Prelude.html#v:-36-" title="GHC.Prelude">$</a></code>   -- TemplateHaskell</p></td></tr><tr><td class="src"><a id="v:AnnDollarDollar" class="def">AnnDollarDollar</a></td><td class="doc"><p>prefix <code><a href="GHC-Utils-Outputable.html#v:-36--36-" title="GHC.Utils.Outputable">$$</a></code>  -- TemplateHaskell</p></td></tr><tr><td class="src"><a id="v:AnnPackageName" class="def">AnnPackageName</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnPattern" class="def">AnnPattern</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnPercent" class="def">AnnPercent</a></td><td class="doc"><p><code>%</code> -- for HsExplicitMult</p></td></tr><tr><td class="src"><a id="v:AnnProc" class="def">AnnProc</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnQualified" class="def">AnnQualified</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnRarrow" class="def">AnnRarrow</a></td><td class="doc"><p><code>-&gt;</code></p></td></tr><tr><td class="src"><a id="v:AnnRarrowU" class="def">AnnRarrowU</a></td><td class="doc"><p><code>-&gt;</code>, unicode variant</p></td></tr><tr><td class="src"><a id="v:AnnRec" class="def">AnnRec</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnRole" class="def">AnnRole</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnSafe" class="def">AnnSafe</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnSemi" class="def">AnnSemi</a></td><td class="doc"><p>';'</p></td></tr><tr><td class="src"><a id="v:AnnSimpleQuote" class="def">AnnSimpleQuote</a></td><td class="doc"><p>'''</p></td></tr><tr><td class="src"><a id="v:AnnSignature" class="def">AnnSignature</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnStatic" class="def">AnnStatic</a></td><td class="doc"><p><code>static</code></p></td></tr><tr><td class="src"><a id="v:AnnStock" class="def">AnnStock</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnThen" class="def">AnnThen</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnThTyQuote" class="def">AnnThTyQuote</a></td><td class="doc"><p>double '''</p></td></tr><tr><td class="src"><a id="v:AnnTilde" class="def">AnnTilde</a></td><td class="doc"><p><code>~</code></p></td></tr><tr><td class="src"><a id="v:AnnType" class="def">AnnType</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnUnit" class="def">AnnUnit</a></td><td class="doc"><p><code>()</code> for types</p></td></tr><tr><td class="src"><a id="v:AnnUsing" class="def">AnnUsing</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:AnnVal" class="def">AnnVal</a></td><td class="doc"><p>e.g. INTEGER</p></td></tr><tr><td class="src"><a id="v:AnnValStr" class="def">AnnValStr</a></td><td class="doc"><p>String value, will need quotes when output</p></td></tr><tr><td class="src"><a id="v:AnnVbar" class="def">AnnVbar</a></td><td class="doc"><p>'|'</p></td></tr><tr><td class="src"><a id="v:AnnVia" class="def">AnnVia</a></td><td class="doc"><p><code>via</code></p></td></tr><tr><td class="src"><a id="v:AnnWhere" class="def">AnnWhere</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Annlarrowtail" class="def">Annlarrowtail</a></td><td class="doc"><p><code>-&lt;</code></p></td></tr><tr><td class="src"><a id="v:AnnlarrowtailU" class="def">AnnlarrowtailU</a></td><td class="doc"><p><code>-&lt;</code>, unicode variant</p></td></tr><tr><td class="src"><a id="v:Annrarrowtail" class="def">Annrarrowtail</a></td><td class="doc"><p><code>-&gt;</code></p></td></tr><tr><td class="src"><a id="v:AnnrarrowtailU" class="def">AnnrarrowtailU</a></td><td class="doc"><p><code>-&gt;</code>, unicode variant</p></td></tr><tr><td class="src"><a id="v:AnnLarrowtail" class="def">AnnLarrowtail</a></td><td class="doc"><p><code>-&lt;&lt;</code></p></td></tr><tr><td class="src"><a id="v:AnnLarrowtailU" class="def">AnnLarrowtailU</a></td><td class="doc"><p><code>-&lt;&lt;</code>, unicode variant</p></td></tr><tr><td class="src"><a id="v:AnnRarrowtail" class="def">AnnRarrowtail</a></td><td class="doc"><p><code>&gt;&gt;-</code></p></td></tr><tr><td class="src"><a id="v:AnnRarrowtailU" class="def">AnnRarrowtailU</a></td><td class="doc"><p><code>&gt;&gt;-</code>, unicode variant</p></td></tr></table></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:AnnKeywordId">Instances</h4><details id="i:AnnKeywordId" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:AnnKeywordId:Data:1"></span> <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a></span> <a href="src/GHC.Parser.Annotation.html#line-354" class="link">Source</a> <a href="#t:AnnKeywordId" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:AnnKeywordId:Data:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Parser-Annotation.html">GHC.Parser.Annotation</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (d -&gt; b) -&gt; d -&gt; c b) -&gt; (<span class="keyword">forall</span> g. g -&gt; c g) -&gt; <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; c <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> <a href="../base/src/Data.Data.html#gfoldl" class="link">Source</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; c (b -&gt; r) -&gt; c r) -&gt; (<span class="keyword">forall</span> r. r -&gt; c r) -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> -&gt; c <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> <a href="../base/src/Data.Data.html#gunfold" class="link">Source</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> <a href="../base/src/Data.Data.html#toConstr" class="link">Source</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; <a href="../base/Data-Data.html#t:DataType" title="Data.Data">DataType</a> <a href="../base/src/Data.Data.html#dataTypeOf" class="link">Source</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (t d)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a>) <a href="../base/src/Data.Data.html#dataCast1" class="link">Source</a> <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d e. (<a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d, <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> e) =&gt; c (t d e)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a>) <a href="../base/src/Data.Data.html#dataCast2" class="link">Source</a> <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; b -&gt; b) -&gt; <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> <a href="../base/src/Data.Data.html#gmapT" class="link">Source</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -&gt; r' -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQl" class="link">Source</a> <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: <span class="keyword">forall</span> r r'. (r' -&gt; r -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQr" class="link">Source</a> <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; [u] <a href="../base/src/Data.Data.html#gmapQ" class="link">Source</a> <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; u <a href="../base/src/Data.Data.html#gmapQi" class="link">Source</a> <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="GHC-Prelude.html#t:Monad" title="GHC.Prelude">Monad</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; m <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> <a href="../base/src/Data.Data.html#gmapM" class="link">Source</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; m <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> <a href="../base/src/Data.Data.html#gmapMp" class="link">Source</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; m <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> <a href="../base/src/Data.Data.html#gmapMo" class="link">Source</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:AnnKeywordId:Show:2"></span> <a href="GHC-Prelude.html#t:Show" title="GHC.Prelude">Show</a> <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a></span> <a href="src/GHC.Parser.Annotation.html#line-354" class="link">Source</a> <a href="#t:AnnKeywordId" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:AnnKeywordId:Show:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Parser-Annotation.html">GHC.Parser.Annotation</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; <a href="GHC-Prelude.html#t:ShowS" title="GHC.Prelude">ShowS</a> <a href="../base/src/GHC.Show.html#showsPrec" class="link">Source</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> <a href="../base/src/GHC.Show.html#show" class="link">Source</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a>] -&gt; <a href="GHC-Prelude.html#t:ShowS" title="GHC.Prelude">ShowS</a> <a href="../base/src/GHC.Show.html#showList" class="link">Source</a> <a href="#v:showList" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:AnnKeywordId:Outputable:3"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a></span> <a href="src/GHC.Parser.Annotation.html#line-356" class="link">Source</a> <a href="#t:AnnKeywordId" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:AnnKeywordId:Outputable:3"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Parser-Annotation.html">GHC.Parser.Annotation</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:AnnKeywordId:Eq:4"></span> <a href="GHC-Prelude.html#t:Eq" title="GHC.Prelude">Eq</a> <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a></span> <a href="src/GHC.Parser.Annotation.html#line-354" class="link">Source</a> <a href="#t:AnnKeywordId" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:AnnKeywordId:Eq:4"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Parser-Annotation.html">GHC.Parser.Annotation</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:AnnKeywordId:Ord:5"></span> <a href="GHC-Prelude.html#t:Ord" title="GHC.Prelude">Ord</a> <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a></span> <a href="src/GHC.Parser.Annotation.html#line-354" class="link">Source</a> <a href="#t:AnnKeywordId" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:AnnKeywordId:Ord:5"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Parser-Annotation.html">GHC.Parser.Annotation</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; <a href="GHC-Prelude.html#t:Ordering" title="GHC.Prelude">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(&lt;)</a> :: <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(&lt;=)</a> :: <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(&gt;)</a> :: <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(&gt;=)</a> :: <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> <a href="#v:min" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:AnnotationComment" class="def">AnnotationComment</a> <a href="src/GHC.Parser.Annotation.html#AnnotationComment" class="link">Source</a> <a href="#t:AnnotationComment" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:AnnDocCommentNext" class="def">AnnDocCommentNext</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></td><td class="doc"><p>something beginning '-- |'</p></td></tr><tr><td class="src"><a id="v:AnnDocCommentPrev" class="def">AnnDocCommentPrev</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></td><td class="doc"><p>something beginning '-- ^'</p></td></tr><tr><td class="src"><a id="v:AnnDocCommentNamed" class="def">AnnDocCommentNamed</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></td><td class="doc"><p>something beginning '-- $'</p></td></tr><tr><td class="src"><a id="v:AnnDocSection" class="def">AnnDocSection</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></td><td class="doc"><p>a section heading</p></td></tr><tr><td class="src"><a id="v:AnnDocOptions" class="def">AnnDocOptions</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></td><td class="doc"><p>doc options (prune, ignore-exports, etc)</p></td></tr><tr><td class="src"><a id="v:AnnLineComment" class="def">AnnLineComment</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></td><td class="doc"><p>comment starting by &quot;--&quot;</p></td></tr><tr><td class="src"><a id="v:AnnBlockComment" class="def">AnnBlockComment</a> <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a></td><td class="doc"><p>comment in {- -}</p></td></tr></table></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:AnnotationComment">Instances</h4><details id="i:AnnotationComment" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:AnnotationComment:Data:1"></span> <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a></span> <a href="src/GHC.Parser.Annotation.html#line-370" class="link">Source</a> <a href="#t:AnnotationComment" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:AnnotationComment:Data:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Parser-Annotation.html">GHC.Parser.Annotation</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:gfoldl">gfoldl</a> :: (<span class="keyword">forall</span> d b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (d -&gt; b) -&gt; d -&gt; c b) -&gt; (<span class="keyword">forall</span> g. g -&gt; c g) -&gt; <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> -&gt; c <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> <a href="../base/src/Data.Data.html#gfoldl" class="link">Source</a> <a href="#v:gfoldl" class="selflink">#</a></p><p class="src"><a href="#v:gunfold">gunfold</a> :: (<span class="keyword">forall</span> b r. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; c (b -&gt; r) -&gt; c r) -&gt; (<span class="keyword">forall</span> r. r -&gt; c r) -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> -&gt; c <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> <a href="../base/src/Data.Data.html#gunfold" class="link">Source</a> <a href="#v:gunfold" class="selflink">#</a></p><p class="src"><a href="#v:toConstr">toConstr</a> :: <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> -&gt; <a href="../base/Data-Data.html#t:Constr" title="Data.Data">Constr</a> <a href="../base/src/Data.Data.html#toConstr" class="link">Source</a> <a href="#v:toConstr" class="selflink">#</a></p><p class="src"><a href="#v:dataTypeOf">dataTypeOf</a> :: <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> -&gt; <a href="../base/Data-Data.html#t:DataType" title="Data.Data">DataType</a> <a href="../base/src/Data.Data.html#dataTypeOf" class="link">Source</a> <a href="#v:dataTypeOf" class="selflink">#</a></p><p class="src"><a href="#v:dataCast1">dataCast1</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; c (t d)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a>) <a href="../base/src/Data.Data.html#dataCast1" class="link">Source</a> <a href="#v:dataCast1" class="selflink">#</a></p><p class="src"><a href="#v:dataCast2">dataCast2</a> :: <a href="../base/Data-Typeable.html#t:Typeable" title="Data.Typeable">Typeable</a> t =&gt; (<span class="keyword">forall</span> d e. (<a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d, <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> e) =&gt; c (t d e)) -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (c <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a>) <a href="../base/src/Data.Data.html#dataCast2" class="link">Source</a> <a href="#v:dataCast2" class="selflink">#</a></p><p class="src"><a href="#v:gmapT">gmapT</a> :: (<span class="keyword">forall</span> b. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> b =&gt; b -&gt; b) -&gt; <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> -&gt; <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> <a href="../base/src/Data.Data.html#gmapT" class="link">Source</a> <a href="#v:gmapT" class="selflink">#</a></p><p class="src"><a href="#v:gmapQl">gmapQl</a> :: (r -&gt; r' -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQl" class="link">Source</a> <a href="#v:gmapQl" class="selflink">#</a></p><p class="src"><a href="#v:gmapQr">gmapQr</a> :: <span class="keyword">forall</span> r r'. (r' -&gt; r -&gt; r) -&gt; r -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; r') -&gt; <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> -&gt; r <a href="../base/src/Data.Data.html#gmapQr" class="link">Source</a> <a href="#v:gmapQr" class="selflink">#</a></p><p class="src"><a href="#v:gmapQ">gmapQ</a> :: (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> -&gt; [u] <a href="../base/src/Data.Data.html#gmapQ" class="link">Source</a> <a href="#v:gmapQ" class="selflink">#</a></p><p class="src"><a href="#v:gmapQi">gmapQi</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; u) -&gt; <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> -&gt; u <a href="../base/src/Data.Data.html#gmapQi" class="link">Source</a> <a href="#v:gmapQi" class="selflink">#</a></p><p class="src"><a href="#v:gmapM">gmapM</a> :: <a href="GHC-Prelude.html#t:Monad" title="GHC.Prelude">Monad</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> -&gt; m <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> <a href="../base/src/Data.Data.html#gmapM" class="link">Source</a> <a href="#v:gmapM" class="selflink">#</a></p><p class="src"><a href="#v:gmapMp">gmapMp</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> -&gt; m <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> <a href="../base/src/Data.Data.html#gmapMp" class="link">Source</a> <a href="#v:gmapMp" class="selflink">#</a></p><p class="src"><a href="#v:gmapMo">gmapMo</a> :: <a href="../base/Control-Monad.html#t:MonadPlus" title="Control.Monad">MonadPlus</a> m =&gt; (<span class="keyword">forall</span> d. <a href="../base/Data-Data.html#t:Data" title="Data.Data">Data</a> d =&gt; d -&gt; m d) -&gt; <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> -&gt; m <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> <a href="../base/src/Data.Data.html#gmapMo" class="link">Source</a> <a href="#v:gmapMo" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:AnnotationComment:Show:2"></span> <a href="GHC-Prelude.html#t:Show" title="GHC.Prelude">Show</a> <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a></span> <a href="src/GHC.Parser.Annotation.html#line-370" class="link">Source</a> <a href="#t:AnnotationComment" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:AnnotationComment:Show:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Parser-Annotation.html">GHC.Parser.Annotation</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> -&gt; <a href="GHC-Prelude.html#t:ShowS" title="GHC.Prelude">ShowS</a> <a href="../base/src/GHC.Show.html#showsPrec" class="link">Source</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> -&gt; <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> <a href="../base/src/GHC.Show.html#show" class="link">Source</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a>] -&gt; <a href="GHC-Prelude.html#t:ShowS" title="GHC.Prelude">ShowS</a> <a href="../base/src/GHC.Show.html#showList" class="link">Source</a> <a href="#v:showList" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:AnnotationComment:Outputable:3"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a></span> <a href="src/GHC.Parser.Annotation.html#line-374" class="link">Source</a> <a href="#t:AnnotationComment" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:AnnotationComment:Outputable:3"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Parser-Annotation.html">GHC.Parser.Annotation</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:AnnotationComment:Eq:4"></span> <a href="GHC-Prelude.html#t:Eq" title="GHC.Prelude">Eq</a> <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a></span> <a href="src/GHC.Parser.Annotation.html#line-370" class="link">Source</a> <a href="#t:AnnotationComment" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:AnnotationComment:Eq:4"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Parser-Annotation.html">GHC.Parser.Annotation</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> -&gt; <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> -&gt; <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:AnnotationComment:Ord:5"></span> <a href="GHC-Prelude.html#t:Ord" title="GHC.Prelude">Ord</a> <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a></span> <a href="src/GHC.Parser.Annotation.html#line-370" class="link">Source</a> <a href="#t:AnnotationComment" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:AnnotationComment:Ord:5"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Parser-Annotation.html">GHC.Parser.Annotation</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> -&gt; <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> -&gt; <a href="GHC-Prelude.html#t:Ordering" title="GHC.Prelude">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(&lt;)</a> :: <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> -&gt; <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(&lt;=)</a> :: <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> -&gt; <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(&gt;)</a> :: <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> -&gt; <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(&gt;=)</a> :: <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> -&gt; <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> -&gt; <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> -&gt; <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> -&gt; <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> -&gt; <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a> <a href="#v:min" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:ApiAnnKey" class="def">ApiAnnKey</a> = (<a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a>, <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a>) <a href="src/GHC.Parser.Annotation.html#ApiAnnKey" class="link">Source</a> <a href="#t:ApiAnnKey" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getAnnotation" class="def">getAnnotation</a> :: <a href="GHC.html#t:ApiAnns" title="GHC">ApiAnns</a> -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; [<a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a>] <a href="src/GHC.Parser.Annotation.html#getAnnotation" class="link">Source</a> <a href="#v:getAnnotation" class="selflink">#</a></p><div class="doc"><p>Retrieve a list of annotation <code><a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></code>s based on the <code><a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></code>
 of the annotated AST element, and the known type of the annotation.</p></div></div><div class="top"><p class="src"><a id="v:getAndRemoveAnnotation" class="def">getAndRemoveAnnotation</a> :: <a href="GHC.html#t:ApiAnns" title="GHC">ApiAnns</a> -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; ([<a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a>], <a href="GHC.html#t:ApiAnns" title="GHC">ApiAnns</a>) <a href="src/GHC.Parser.Annotation.html#getAndRemoveAnnotation" class="link">Source</a> <a href="#v:getAndRemoveAnnotation" class="selflink">#</a></p><div class="doc"><p>Retrieve a list of annotation <code><a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></code>s based on the <code><a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></code>
 of the annotated AST element, and the known type of the annotation.
 The list is removed from the annotations.</p></div></div><div class="top"><p class="src"><a id="v:getAnnotationComments" class="def">getAnnotationComments</a> :: <a href="GHC.html#t:ApiAnns" title="GHC">ApiAnns</a> -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; [<a href="GHC.html#t:RealLocated" title="GHC">RealLocated</a> <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a>] <a href="src/GHC.Parser.Annotation.html#getAnnotationComments" class="link">Source</a> <a href="#v:getAnnotationComments" class="selflink">#</a></p><div class="doc"><p>Retrieve the comments allocated to the current <code><a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></code></p><p>Note: A given <code><a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></code> may appear in multiple AST elements,
  beware of duplicates</p></div></div><div class="top"><p class="src"><a id="v:getAndRemoveAnnotationComments" class="def">getAndRemoveAnnotationComments</a> :: <a href="GHC.html#t:ApiAnns" title="GHC">ApiAnns</a> -&gt; <a href="GHC.html#t:RealSrcSpan" title="GHC">RealSrcSpan</a> -&gt; ([<a href="GHC.html#t:RealLocated" title="GHC">RealLocated</a> <a href="GHC.html#t:AnnotationComment" title="GHC">AnnotationComment</a>], <a href="GHC.html#t:ApiAnns" title="GHC">ApiAnns</a>) <a href="src/GHC.Parser.Annotation.html#getAndRemoveAnnotationComments" class="link">Source</a> <a href="#v:getAndRemoveAnnotationComments" class="selflink">#</a></p><div class="doc"><p>Retrieve the comments allocated to the current <code><a href="GHC.html#t:SrcSpan" title="GHC">SrcSpan</a></code>, and
 remove them from the annotations</p></div></div><div class="top"><p class="src"><a id="v:unicodeAnn" class="def">unicodeAnn</a> :: <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> -&gt; <a href="GHC.html#t:AnnKeywordId" title="GHC">AnnKeywordId</a> <a href="src/GHC.Parser.Annotation.html#unicodeAnn" class="link">Source</a> <a href="#v:unicodeAnn" class="selflink">#</a></p><div class="doc"><p>Convert a normal annotation into its unicode equivalent one</p></div></div><a href="#g:45" id="g:45"><h1>Miscellaneous</h1></a><div class="top"><p class="src"><a id="v:cyclicModuleErr" class="def">cyclicModuleErr</a> :: [<a href="GHC.html#t:ModSummary" title="GHC">ModSummary</a>] -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Driver.Make.html#cyclicModuleErr" class="link">Source</a> <a href="#v:cyclicModuleErr" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.25.1</p></div></body></html>